2012-03-09 7 views
1

私のアプリはアクティビティとサービスを持っています。私は最近、私のアプリでAdmobを紹介します。AdMob adViewを完全に破棄してメモリを取り戻すにはどうすればいいですか?

しかし、私はそれがメモリ(5MB)を非常に消費していることを発見し、それを破壊した後に私の記憶を取り戻すことはできません。

私は、私のlayout.xml

<com.google.ads.AdView 
    android:id="@+id/adView" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    ads:adUnitId="xxxxxx" 
    ads:adSize="BANNER"> 

私のonPauseまたはonDestory

AdView adView = (AdView)this.findViewById(R.id.adView); 
adView.destroyDrawingCache(); 
adView.destroy(); 

は後に、それを破壊する上でそれをDestoryは私の

のonCreate
AdView adView = (AdView)this.findViewById(R.id.adView); 
adView.loadAd(new com.google.ads.AdRequest()); 

でのAdMobを有効にこれを使用します私はまだ私の5メガバイトのメモリを取得することはできません。誰かがplsを助けることができますか?

p.s.私のサービスはバックグラウンドで実行されており、5MBがまだそこにあることがわかりました。

ありがとうございました。

+0

あなたはそれがすべての記憶を食べているのは確かですか? – slezica

+0

はい、adView.loadAd(新しいcom.google.ads.AdRequest())を削除すると、5MBが戻ってきます。ありがとう。 – dong221

答えて

0

他の方法を試してみましたが、いずれも機能しません。また、私は最新のAdmobライブラリ4.3.1を使用しています。

私の場合、唯一の解決策は、私のアプリのどこかで "System.exit(0)"を呼び出すことです。

サービスが再開され、Admobが消費するメモリも戻ってきます。

+6

申し訳ありませんが、解決策ではありませんが、それは黒い魔法です –

0

destroy()を呼び出す前にstopLoading()を呼び出してみてください。

+0

それは動作していませんが、とにかく感謝します。 – dong221

+0

破壊した後でSystem.gc()を呼び出すのはどうですか? – Maz

+0

まだ運がありません... – dong221

0

GCが削除できるように、コンテナビューからAdViewを削除してみます。

+0

親ビューからAdViewを削除しようとしましたが、まだ動作していません。とにかくありがとう。 – dong221

関連する問題