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

标签 java android asynchronous android-asynctask

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

相关文章:

Python 日志记录开销

c# - Web Api C# - Task.Factory.startnew 与异步

java - 从 PDF 中提取不可选择的内容

java - 为elasticsearch索引实现LSA

java - 在Java输出中插入空行

android - 使用 xml 可绘制重力右圆

java - 在java中将JSON字符串转换为不同的java对象

android - 无法从 sqlite 表中删除列 [Android]

android - 回收站 View 未调用 getItemCount

asynchronous - C# 5.0 异步如何工作?