显示Admob非页内广告时出现内存泄漏

时间:2018-06-26 08:12:37

标签: android memory-leaks admob interstitial google-admob

我在活动中展示插页式广告时遇到了内存泄漏。我正在以一定的频率显示广告,当用户离开活动(如果已经加载广告)时,然后在“活动”中显示广告会销毁,否则在加载广告时就会显示。我已阅读this,但找不到解决此问题的方法。这是代码,请帮助我找出可能的内存泄漏在哪里。

//inside Activity's onCreate()

if(ApplicationClass.showAd()) {
            interstitialAd = new InterstitialAd(getApplicationContext());
            interstitialAd.setAdUnitId("AD_UNIT_ID");
            interstitialAd.loadAd(new AdRequest.Builder()
                    .addTestDevice("DEVICE_ID")
                    .build());

            interstitialAd.setAdListener(new AdListener() {

                @Override
                public void onAdLoaded() {
                    super.onAdLoaded();
                    //backup display if ad was not loaded and user exits the screen
                    if(isDisplay && interstitialAd != null){
                        interstitialAd.show();
                        interstitialAd.setAdListener(null);
                    }
                }

                @Override
                public void onAdOpened() {
                    finish();
                }

                @Override
                public void onAdClosed() {
                    finish();
                }

                @Override
                public void onAdFailedToLoad(int i) {
                    super.onAdFailedToLoad(i);
                    ApplicationClass.cancelScreenVisited();
                }
            });
        }


@Override
    protected void onDestroy() {
        itemsList = null;
        if(interstitialAd != null && interstitialAd.isLoaded()){
            interstitialAd.show();
            interstitialAd.setAdListener(null);
        } else {
            isDisplay = true;
        }
        super.onDestroy();
    }

0 个答案:

没有答案