任何人都知道是否可以在没有循环的情况下杀死/停止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);
}
答案 0 :(得分:0)
您可以通过将AsyntTask
设置为任务来取消cancel(true)
。
new MyAsyncTask().cancel(false);