我在其中一个活动中运行了一次asynctasks类3次,我想知道如何单独取消其中一个。每个人都从服务器下载一个文件,这个文件总是一个不同的文件,我想知道如何才能取消我选择的三个中的一个?
答案 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();
}