執行順序
首次引入時,AsyncTasks
在一個後臺執行緒上連續執行。從 DONUT
開始,這被改為一個執行緒池,允許多個任務並行執行。從 HONEYCOMB
開始,任務在單個執行緒上執行,以避免由並行執行引起的常見應用程式錯誤。
如果你真的想要並行執行,你可以用 THREAD_POOL_EXECUTOR
呼叫 executeOnExecutor(java.util.concurrent.Executor, Object[])
。
SERIAL_EXECUTOR - >一個 Executor,以序列順序一次執行一個任務。
THREAD_POOL_EXECUTOR - >可用於並行執行任務的執行器。
樣品:
Task task = new Task();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
task.executeOnExecutor(AsyncTask.SERIAL_EXECUTOR, data);
else
task.execute(data);