多くの AsyncTasks を使用するアプリケーションがあります。私が抱えている問題は、execute を呼び出してから数分間、特に重要なタスクが開始されないことです。
ICS デバイスに以下を使用すると動作します。
if(Build.VERSION.SDK_INT >= 11)
{
myTask.executeOnExecutor( AsyncTask.THREAD_POOL_EXECUTOR, stuff );
}
ICS以前のこれとは対照的に。
myTask.execute(stuff);
ICS がスレッドの実行をシリアル化するように変更したことは承知していますが、何がスレッド キューを保持しているのかわかりません。
Eclipse のデバッグには約 20 のスレッドがリストされていますが、デバッガーは実際には存在しないものを表示し続ける傾向があるため、おそらくこれは正しくないことを読みました。
シリアル化されたキューを保持しているスレッドを特定するにはどうすればよいので、ICS のデフォルトから切り替える必要がなく、おそらく、スレッド プール エグゼキューターによる問題が発生していない ICS 以前のデバイスのパフォーマンスを向上させることさえできます。デフォルトの動作です。