アプリにいくつかの広告を表示するために広告ネットワークを使用しています。ライブラリの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)。
もう一度再起動した後、もうActivity
1つAsynkTask
作成されます(#5)。
どうすれば実際にタスクを強制終了できますか?彼らの実行を完全に停止するように?それとも、実際に停止して、DDMSを誤解しているだけですか?