execute()
和executeOnExecutor()
有什么区别?
execute()
默认以什么方式执行任务?(串行或并行?)新的SDK >16 应该使用什么方法?
在任务数量不重要的情况下,使用并行执行(
THREAD_POOL_EXECUTOR
)比串行执行好吗?或者这取决于将要执行的AsyncTask
的数量?
execute()
和executeOnExecutor()
有什么区别?
execute()
默认以什么方式执行任务?(串行或并行?)
新的SDK >16 应该使用什么方法?
在任务数量不重要的情况下,使用并行执行(THREAD_POOL_EXECUTOR
)比串行执行好吗?或者这取决于将要执行的 AsyncTask
的数量?
.execute() - 此函数会将任务调度到单个后台线程的队列中。这意味着,如果您调用了两个AsyncTask并使用.execute()方法来调用它们,则它们将按顺序排队执行(先执行第一个,然后执行第二个)。
.executeOnExecutor() - 如果您希望同时执行这两个AsyncTask,可以使用此方法来执行AsyncTask。这样两个asyncTasks将同时执行。
简单来说:.execute()方法创建一个线程来执行asyncTasks,并且.executeOnExecuter()方法为每个asyncTask创建一个单独的线程。
.execute默认按顺序执行任务。
编辑:如果您想使用executeOnExecutor(),可以使用以下代码:
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
else
task.execute();
在HONEYCOMB之前,execute()方法会以并行方式运行AsynkTask。
executeOnExecutor
。 - IgorGanapolsky