我一次运行多个异步任务,我只想关闭三个中的一个

时间:2012-02-11 20:49:30

标签: java android asynchronous android-asynctask

我在其中一个活动中运行了一次asynctasks类3次,我想知道如何单独取消其中一个。每个人都从服务器下载一个文件,这个文件总是一个不同的文件,我想知道如何才能取消我选择的三个中的一个?

1 个答案:

答案 0 :(得分:2)

保留对它们的引用,然后提供一个方法来取消它们。在要取消的方法上调用该方法。

private class MyAsyncTask extends AsyncTask<Void, Void, Void> {
    boolean cancelled = false;
    public void cancel() {
        cancelled = true;
    }

    public void doInBackground() {
        while(!cancelled) {
            ...
    }
    ...
}

...

MyAsyncTask task1 = new MyAsyncTask().execute();
MyAsyncTask task2 = new MyAsyncTask().execute();
MyAsyncTask task3 = new MyAsyncTask().execute();

...

if(needToCancelTask2) {
    task2.cancel();
}