为什么AsyncTask线程一个接一个地运行?

时间:2015-03-10 14:26:44

标签: android sdk

我正在将许多后台操作(如Web访问和数据库操作)卸载到AsyncTasks,以使我的应用程序运行得更快。它部分有效,因为UI不会挂起。但它仍然需要很长时间才能解决(即完成后台任务)。

在查看logcat时,我注意到所有后台任务(AsyncTask)一个接一个地运行。没有并发性。如何编写真正的多线程应用程序?

1 个答案:

答案 0 :(得分:3)

阅读AsyncTask的文档,您可以看到Android确实在单个线程中运行所有非主线程任务。参见"执行顺序"在http://developer.android.com/reference/android/os/AsyncTask.html

但是你也有解决方案:使用executeOnExecutor(java.util.concurrent.Executor, Object[])和THREAD_POOL_EXECUTOR。