Android中AsyncTasks的默认执行方式是什么?

时间:2015-09-21 14:24:44

标签: android multithreading android-asynctask

android Asynctask在不同的API级别之间经常被修改。我正在开发一个应用程序,我将图像上传到FTP服务器。我希望以序列化顺序执行此操作(图像上传后,每个asyntask上传一个图像上传)。我理解SERIAL_EXECUTORTHREAD_POOL_EXECUTOR的内容,但我只是想清楚一下asynctask的默认行为是什么(我的最小目标API是ICS 4.0)。如果我只是在一个循环中执行说10个asyncs',它们会进入线程队列并逐个执行,还是只会并行执行?

2 个答案:

答案 0 :(得分:3)

查看AsyncTask文档:

  

首次引入时,AsyncTask s在一个单独执行   背景线程。从DONUT开始,这已更改为池   线程允许多个任务并行运行。开始   使用HONEYCOMB,任务在单个线程上执行以避免   并行执行导致的常见应用程序错误。

     

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

因此,当最小目标为14时,它们将被序列化。

答案 1 :(得分:0)

你不能在doInBackground()内使用一个异步任务和循环吗?如果您想控制它们,可以在第一个onPostExecute()中调用第二个异步任务。