我展示广告的代码:
public voID loadAndShowInterstitialAd() { interstitial = new InterstitialAd(getApplicationContext()); interstitial.setAdUnitID(AD_UNIT_ID); final AdRequest adRequest = new AdRequest.Builder() .build(); Handler handler = new Handler(new Handler.Callback() { @OverrIDe public boolean handleMessage(Message msg) { interstitial.loadAd(adRequest); return true; } }); if (handler != null) { handler.sendEmptyMessageDelayed(0,200); } interstitial.setAdListener(new AdListener() { @OverrIDe public voID onAdLoaded() { super.onAdLoaded(); displayInterstitial(); } }); } public voID displayInterstitial() { if (interstitial.isLoaded()) { interstitial.show(); } }
我在下面的堆栈溢出问题中尝试了一些解决方案,但没有任何方法可以帮助我.
Android Admob Interstitial Memory leak
Android AdMob causes memory leak?
解决方法 我今天遇到了这个问题,最后我有一个修复:在您的活动中,在onDestroy()中:
>如果有AdVIEw,请将其从布局中删除,将AdVIEw设置为null.
>将所有AdListeners设置为null.
@OverrIDe public voID onDestroy(){ super.onDestroy(); mMainVIEw.removeVIEw(adVIEw); adVIEw = null; interstitial.setAdListener(null); }
在您的情况下,也许将AdListener设置为null就足够了.
P / S:
因为泄漏发生在很多方面,以防万一有人错过了这个:记得使用Context.getApplicationContext()初始化插页式广告(就像OP所做的那样),而不是你的活动 – 这绝对会造成泄密 – 因为插页式广告现在似乎已经存在对你的活动的引用,它永远不会离开,所以永远不要让你的活动去……
Interstitial interstitial = new Interstitial(getApplicationContext())总结
以上是内存溢出为你收集整理的android – 使用Admob插页式广告时内存泄漏全部内容,希望文章能够帮你解决android – 使用Admob插页式广告时内存泄漏所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)