执行顺序

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