我在其中一项活动中运行了一个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/

10-09 00:04