android Asynctask
在不同的API级别之间经常被修改。我正在开发一个应用程序,我将图像上传到FTP服务器。我希望以序列化顺序执行此操作(图像上传后,每个asyntask上传一个图像上传)。我理解SERIAL_EXECUTOR
和THREAD_POOL_EXECUTOR
的内容,但我只是想清楚一下asynctask的默认行为是什么(我的最小目标API是ICS 4.0)。如果我只是在一个循环中执行说10个asyncs',它们会进入线程队列并逐个执行,还是只会并行执行?
答案 0 :(得分:3)
查看AsyncTask
文档:
首次引入时,
AsyncTask
s在一个单独执行 背景线程。从DONUT
开始,这已更改为池 线程允许多个任务并行运行。开始 使用HONEYCOMB
,任务在单个线程上执行以避免 并行执行导致的常见应用程序错误。如果您真的想要并行执行,可以调用
executeOnExecutor(java.util.concurrent.Executor, Object[])
THREAD_POOL_EXECUTOR
。
因此,当最小目标为14时,它们将被序列化。
答案 1 :(得分:0)
你不能在doInBackground()
内使用一个异步任务和循环吗?如果您想控制它们,可以在第一个onPostExecute()
中调用第二个异步任务。