不能同时运行两个以上的asynctask

时间:2014-09-26 19:04:09

标签: android multithreading android-asynctask threadpoolexecutor

当我使用AsyncTasks标记在我的视图中运行多个AsyncTask.THREAD_POOL_EXECUTOR时,我发现同时运行的AsyncTasks不超过两个AsyncTasks。实际上当两个AsyncTask完成他们的工作时,接下来两个开始。我还在github中尝试了这个AsyncTasks测试项目。我得到了相同的结果,看着那里不再有两个{{1}}同时运行的logcat。

如何同时运行两个以上的asynctasks?

1 个答案:

答案 0 :(得分:2)

documentation说:

  

首次引入时,AsyncTasks在单个上串行执行   背景线程。从DONUT开始,这被改成了一个池   允许多个任务并行运行的线程。从...开始   HONEYCOMB,任务在单个线程上执行以避免常见   并行执行导致的应用程序错误。

这意味着它们是在一个线程上执行的,这意味着,默认情况下,您一次只能激活一个 AsyncTask

但是,不要担心,文件进一步指出:

  

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

所以... new MyTask().executeOnExecutor( AsyncTask.THREAD_POOL_EXECUTOR );

会帮你解决问题。