在API10上防止多个并行AsyncTask?

时间:2016-05-26 21:00:21

标签: android multithreading android-asynctask parallel-processing threadpool

根据the documentation for AsyncTask,它在某些较旧的API上使用了并行线程池:

  

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

     

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

如果我真的想在非蜂窝前进行非并行执行怎么办?

在较新的API上,它们最终会一个接一个地运行。是否有任何方法可以在蜂窝前蜂窝上获得相同的行为?

1 个答案:

答案 0 :(得分:0)

简而言之,不,不是API本身。它真的只影响甜甜圈,Eclair,Froyo和姜饼。您可以将自己的线程池执行程序与单个线程一起使用,而不是使用AsyncTask,因此它会对事物进行序列化。但是,在Honyecomb之前的版本中,API本身在框架内是不同的。

相关问题