私は一連のasyncTaskを1つ実行する必要があります他のサーバの後にpdfをダウンロードすることができます。しかし、時には私はアプリケーションを最小限に抑えてから、バックグラウンドでダウンロードして再開すると、すぐに実行されるasyncTaskの直後に実行されるasyncTaskがpreExcuteにスタックされます。 doInBackgroundは実行されていません。お手伝いください。
回答:
回答№1は1これはAsyncTasksの既知の問題です。 AsyncTasksのデフォルトのexecutorは次のとおりです。 SERIAL_EXECUTOR
。このエグゼキュータのキューには5つのAsyncTaskを持つことができます。その後、新しい Threads
.
これを行う場合:
public void someMethod() {
new MyAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
スレッドをプールする別のエグゼキュータでAsyncTasksを実行します。それは15の限界があります。しかし、最も良いことは、スレッドを平行に実行し、 SERIAL_EXECUTOR
それらをキューに入れ、1つずつ実行します。