0
我有一系列的asyncTasks一個接一個地從服務器上下載pdfs。但有時當我最小化應用程序,然後恢復它(在後臺下載)非常下一個asyncTask在當前正在運行的asyncTask卡在preExcute ie中後馬上執行。 doInBackground沒有被執行。請幫忙。異步任務doInBackground沒有執行
我有一系列的asyncTasks一個接一個地從服務器上下載pdfs。但有時當我最小化應用程序,然後恢復它(在後臺下載)非常下一個asyncTask在當前正在運行的asyncTask卡在preExcute ie中後馬上執行。 doInBackground沒有被執行。請幫忙。異步任務doInBackground沒有執行
這是AsyncTasks上的已知問題。 AsyncTasks的默認執行器是SERIAL_EXECUTOR
。你可以在這個執行器的隊列中有5個AsyncTasks。之後,它將停止製作新的Threads
。
如果你這樣做:
public void someMethod() {
new MyAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
這將在不同的執行程序,它池的線程運行AsyncTasks。它有15個限制。但最好的情況是,它並行運行線程,並將它們放入隊列並逐個執行它們。
當您最小化應用程序並重新運行它時,取消asyncTask .... –