我应该在Android中的SERIAL_EXECUTOR后面使用哪个AsyncTask

时间:2014-04-21 16:27:57

标签: android android-asynctask

我正在检索所有用户控件中已创建的数据。并且有3个Spinners因此我使用SERIAL_EXECUTOR逐个执行它。但现在问题是,一个Spinner根据另一个Spinner检索数据。

因此尽管AsyncTask正在进行Spinner,我应该使用哪个SERIAL_EXECUTOR执行程序AsyncTask来加载其数据。{
简而言之,我想知道即使SERIAL_EXECUTOR正在进行中,我应该使用哪个{{1}}执行该任务。

1 个答案:

答案 0 :(得分:3)

如果你想与另一个AsyncTask并行执行,那么你可以像这样使用THREAD_POOL_EXECUTOR

AsyncTask task = new SomeAsyncTask();
task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);

但我警告你,这可能不会像你想的那样好。如果您正在执行的AsyncTasks执行相当多的工作而不是并行执行它们会大大减慢它们的速度。如果可能,尝试按顺序执行任务,只有在必要时才能并行执行。如果您需要加载依赖于其他类型数据的数据,请考虑在一个大的AsyncTask中进行,而不是将工作拆分为AsyncTasks。始终尽量将AsyncTasksThreads的金额保持在最低水平。您的应用加载速度越快,就越少。