2012-06-28 129 views
0

我有一系列的asyncTasks一個接一個地從服務器上下載pdfs。但有時當我最小化應用程序,然後恢復它(在後臺下載)非常下一個asyncTask在當前正在運行的asyncTask卡在preExcute ie中後馬上執行。 doInBackground沒有被執行。請幫忙。異步任務doInBackground沒有執行

+0

當您最小化應用程序並重新運行它時,取消asyncTask .... –

回答

1

這是AsyncTasks上的已知問題。 AsyncTasks的默認執行器是SERIAL_EXECUTOR。你可以在這個執行器的隊列中有5個AsyncTasks。之後,它將停止製作新的Threads

如果你這樣做:

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

這將在不同的執行程序,它池的線程運行AsyncTasks。它有15個限制。但最好的情況是,它並行運行線程,並將它們放入隊列並逐個執行它們。