Admob4.1.1によって引き起こされたメモリリークを示すテストプロジェクトがあります。
基本的なシナリオは、2つのアクティビティがあり、メインアクティビティとサブアクティビティを数回切り替えることです。次に、DDMSに切り替えて、いくつかのGCを強制します。次に、HPROFをダンプし、com.test *でフィルタリングされたヒストリグラムを調べて、メインアクティビティとサブアクティビティのインスタンスがいくつあるかを確認します。ヒストグラムのスクリーンショットが添付されています。
漏れ!
次に、xml内の広告をコメントアウトして再実行しましたが、リークはありませんでした。
今リークはありません
私はここのようなAdmobリークに関連するいくつかの投稿を見つけました:Android AdMobはメモリリークを引き起こしますか?
これが私が問題を解決しようとしたことのリストです:
- しばらく待ってから、gcを強制します
- oncreateに広告をロードせずに、スレッドを生成して待機してからロードします
- 以前のバージョンのAdmob(Googleによって作成されていないもの)を試しました
- onDestroy()アクティビティのメソッドでadView.destroy()を呼び出しました
- このリンクからのバインド解除
明らかに、これらのことのどれも役に立ちませんでした。
これが私が書いたテストプロジェクトです:
(テストプロジェクトを実行するときは、必ず独自の発行元IDを設定してください)
それが違いを生むなら、私はCyanogenmodROMを使ってSGS2を試してみています。
他の人がこのプロジェクトを実行するときに、これは起こりますか?
誰かが原因を知っていますか?修正または回避策はありますか?
ありがとう