アプリにいくつかの広告を表示するために広告ネットワークを使用しています。ライブラリのloadAd関数により、エミュレータがフリーズすることがあります(ファイアウォールの問題が原因である可能性があります)。
とにかく、それ以来、私AsyncTasksはそのメソッドの実際の呼び出しを行う使用に移行しましたloadAd(したがって、UIはもうフリーズしません)。これは、サーバーからバナーなどを要求します。
を再起動するたびにActivity、のonDetroyメソッドActivityが呼び出されます。そこで、AscynTask's cancelメソッドを呼び出してタスクをキャンセルし、...おそらくスレッドを停止/削除します。
DDMSを見ると、次のことに気づきました。
スナップショットを参照してください:http://bayimg.com/EAkBaAaEH
executeのメソッドを呼び出すたびに、 `onDestroy()でメソッドを呼び出したときに消えない(殺される)ように見える2AsyncTaskつAsynkTasks(#1と#2)が作成されます。cancel(true)
再起動後Activity、別の2つのAsyncTasksスレッドが作成されます(#3と#4)。
もう一度再起動した後、もうActivity1つAsynkTask作成されます(#5)。
どうすれば実際にタスクを強制終了できますか?彼らの実行を完全に停止するように?それとも、実際に停止して、DDMSを誤解しているだけですか?