Android - 取消/停止/杀死AsyncTask强力无循环

时间:2013-09-09 08:44:43

标签: android android-asynctask

任何人都知道是否可以在没有循环的情况下杀死/停止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);
}

1 个答案:

答案 0 :(得分:0)

您可以通过将AsyntTask设置为任务来取消cancel(true)

new MyAsyncTask().cancel(false);