2012-03-09 2 views
1

У моего приложения есть деятельность и обслуживание. Недавно я представил Admob в своем приложении.Как полностью уничтожить AdView adView и вернуть память?

Однако, я нашел, что он невероятно поглощает память (5 МБ), и я не могу вернуть свою память после ее уничтожения.

Я использую это в моем 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"> 

Включить AdMob в моем OnCreate

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

Destory на моем OnPause или onDestory

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

После его уничтожить, Я все еще не могу вернуть свою память 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

Просто догадайтесь, но, возможно, попробуйте вызвать stopLoading() перед вызовом destroy().

+0

Это не работает, но спасибо в любом случае. – dong221

+0

Как насчет вызова System.gc() после его уничтожения? – Maz

+0

Еще не повезло ... – dong221

0

Попытайтесь удалить AdView из своего контейнера View, чтобы GC смог его удалить.

+0

Я пытаюсь удалить AdView из его родительского представления, но он все еще не работает. Спасибо, в любом случае. – dong221