我在其中一项活动中运行了一个asynctasks类3次,我想知道如何单独取消其中一项。每个人都从服务器下载一个文件,该文件始终是一个不同的文件,我想知道如何才能只取消选择的三个文件中的一个?
最佳答案
保留对它们每个的引用,然后在其中提供一种取消它们的方法。在您要取消的方法上调用该方法。
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();
}
关于java - 我一次运行多个异步任务,我只想关闭三个任务之一,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9243942/