异步任务doInBackground未执行

时间:2012-06-28 09:23:11

标签: android android-asynctask resume-download

我有一系列的asyncTasks要从服务器上下载一个接一个地执行。但有时当我最小化应用程序然后恢复它(在后台下载)时,下一个asyncTask很快就会被执行当前运行的asyncTask卡在preExcute ie中。 doInBackground未执行。请帮忙。

1 个答案:

答案 0 :(得分:2)

这是AsyncTasks上的已知问题。 AsyncTasks的默认执行程序是SERIAL_EXECUTOR。您可以在此队列中为此执行程序提供5个AsyncTasks。之后,它将停止制作新的Threads

如果你这样做:

public void someMethod() {
     new MyAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}

它会在不同的执行器上运行AsyncTasks,这些执行器会汇集您的线程。它的最大值为15.但最好的是,它运行线程并行,SERIAL_EXECUTOR将它们放入队列并逐个执行。