java - 用新的 Asynctask 替换 AsyncTask 时会发生什么

标签 java android android-asynctask

快速 Android 问题...当您创建一个替换现有 AsyncTask 的新 AsyncTask 时会发生什么?例如,您有一个简单的 Activity :

public class ExampleActivity extends Activity{

    private MyTask myTask;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // first instance
        myTask = new MyTask();
        myTask.execute();

        // immediately replace first instance
        // assume the first instance hasn't finished yet
        myTask = new MyTask();
        myTask.execute();


    }
}

第一个实例会发生什么?它运行完成了吗?是垃圾回收吗?

最佳答案

两个实例将分别运行直至任务完成。

首次引入时,AsyncTasks 在单个后台线程上连续执行。

从 DONUT 开始,这被更改为允许多个任务并行运行的线程池。

从 HONEYCOMB 开始,任务在单个线程上执行,以避免并行执行导致的常见应用程序错误。

关于java - 用新的 Asynctask 替换 AsyncTask 时会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27518681/

相关文章:

Android应用异步同步数据到远程服务器

java - @JsonView 未传播到 ("nested")自定义序列化器

java - JUnit 测试有问题吗?

java - 如何从 ViewPager 的 onPageSelected 异步任务到 fragment ?

java - 为什么 android logcat 不显示运行时异常的堆栈跟踪?

Android - 避免用户更改日期/时间时触发警报

java - C++ 命名空间,与 Java 包的比较

java - 了解Java中泛型的使用

android - 是否已在所有 Android 手机上修复 AAC+ 支持?

android - 谷歌地图实用程序 : how to get all markers from ClusterManager<? >?