同时运行多个Asyntasks

Fco*_*der -3 java android android-asynctask

我有一个问题,我根本无法理解它!我有一个Asynctask连接到Web服务并下载一些数据.

但当我这样做时,我的其他人Asynctasks等待这个Asynctask to finish his work evenAsynctasks in otherActivities` !! 但我无法理解这一点.

我怎么能避免这个?我当时认为Asynctasks可以同时运行,但现在却没有!问题是什么?似乎REST和下载流数据会阻止整个应用程序.

Mic*_*Bak 5

如果您在Android 3.0或更高版本上运行,并且您正在使用默认实现AsyncTask(即框架中的那个),它将一次只执行一个任务.但是,可以进行并行执行.见下文.

来自AsyncTask文档

执行顺序

首次引入时,AsyncTasks在单个后台线程上串行执行.DONUT从这开始,这被改为一个线程池,允许多个任务并行运行.从开始HONEYCOMB,任务在单个线程上执行,以避免由并行执行引起的常见应用程序错误.

如果您真的想要并行执行,可以executeOnExecutor(java.util.concurrent.Executor, Object[])使用THREAD_POOL_EXECUTOR.