任何人都知道是否可以在没有循环的情况下杀死/停止 AsyncTask。有很多关于循环的例子,但我应该在doInBackground()函数中执行的任务只有一个函数,在某些情况下需要很长时间,我将在onPause中停止它。如果可能的话,或者我应该使用另一个任务,例如 Futuretask。
提前致谢。
像这样的代码:
class ProcessTask extends AsyncTask<Void, Void, Boolean> {
@Override
protected Boolean doInBackground(Void... params) {
Log.i(TAG, " ---- ProcessTask -- doInBackground ----");
// Task
}
@Override
protected void onPostExecute(Boolean result) {
super.onPostExecute(result);
Log.i(TAG, " ---- ProcessTask -- onPostExecute ----");
}
@Override
protected void onCancelled(Boolean result) {
super.onCancelled(result);
Log.i(TAG, " ---- ProcessTask -- onCancelled ----");
}
}
...
ProcessTask myTask;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
myTask = new OCRProcessTask();
myTask.cancel(false);
myTask.execute();
}
@Override
public void onPause() {
myTask.cancel(true);
}