根据the documentation for AsyncTask,它在某些较旧的API上使用了并行线程池:
首次引入时,AsyncTasks在单个后台线程上串行执行。从DONUT开始,这被改为一个线程池,允许多个任务并行运行。从HONEYCOMB开始,任务在单个线程上执行,以避免由并行执行引起的常见应用程序错误。
如果您真的想要并行执行,可以使用THREAD_POOL_EXECUTOR调用executeOnExecutor(java.util.concurrent.Executor,Object [])。
如果我真的想在非蜂窝前进行非并行执行怎么办?
在较新的API上,它们最终会一个接一个地运行。是否有任何方法可以在蜂窝前蜂窝上获得相同的行为?
答案 0 :(得分:0)
简而言之,不,不是API本身。它真的只影响甜甜圈,Eclair,Froyo和姜饼。您可以将自己的线程池执行程序与单个线程一起使用,而不是使用AsyncTask
,因此它会对事物进行序列化。但是,在Honyecomb之前的版本中,API本身在框架内是不同的。