Android 异步任务不兼容类型
我有一个从套接字读取的异步任务。DoInBackground在活动打开时运行。我想在活动关闭时取消DoInBackground,但在启动AsyncTask时无法分配变量。 我的班级是:-Android 异步任务不兼容类型,android,android-asynctask,Android,Android Asynctask,我有一个从套接字读取的异步任务。DoInBackground在活动打开时运行。我想在活动关闭时取消DoInBackground,但在启动AsyncTask时无法分配变量。 我的班级是:- private class receivingData extends AsyncTask<String, Void, String> { private volatile boolean exit = false; DataInputStream in;
private class receivingData extends AsyncTask<String, Void, String> {
private volatile boolean exit = false;
DataInputStream in;
byte[] fullBuffer = new byte[7];
byte[] buffer = new byte[100]; // buffer store for the stream
int bytes; // bytes returned from read()
int bytesCount = 0;
@Override
protected String doInBackground(String... params) {
try {
if (socket.isConnected()) {
in = new DataInputStream(socket.getInputStream());
//Log.d(TAG,"In async receive data run, connected");
}
}catch(Exception e){
Log.d(TAG, "in async receiveData - run exception - " + e.toString());
}
while(!exit){
try {
bytes = in.read(buffer); // Get number of bytes and message in "buffer"
System.arraycopy(buffer,0,fullBuffer,bytesCount,bytes);
bytesCount = bytesCount + bytes;
if(bytesCount >= 7) {
hdt.obtainMessage(RECEIVED_MESSAGE, bytesCount, -1, fullBuffer).sendToTarget(); // Send to message queue Handler
Log.d("DTA Read - ", "Message sent");
bytesCount = 0;
Log.d("DTA Read - ", "bytesCount re-set");
}
}catch(Exception e){
Log.d(TAG, "Read Error - " + e.toString());
}
}
return "Executed";
}
@Override
protected void onPostExecute(String result) {
}
@Override
protected void onPreExecute() {}
@Override
protected void onProgressUpdate(Void... values) {}
}
这给了我一个不兼容的类型错误
上面写着——
Required DateTimeActivity.receivingData
发现
android.os.asyncTask <java.lang.string, java.lang.void, ava.lang.string>
android.os.asyncTask
任何帮助都将不胜感激。您需要首先分配变量,然后启动异步任务:
// start async task to receive data
mRecData = new DateTimeActivity.receivingData();
mRecData.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
// start async task to receive data
mRecData = new DateTimeActivity.receivingData();
mRecData.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);