執行順序

首次引入時,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);