11

特定の時点でアクティビティを表示するサービスがあります。そのアクティビティの後、13 回ごとに admob インタースティシャル広告を表示しています。インタースティシャル広告が表示されるとアプリケーションの RAM 使用量が 20MB 増加し、その後ガベージ コレクションが行われません。次の 13 回目に別のインタースティシャル広告が表示されると、サービス メモリは増加しません。

広告を表示するための私のコード:

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 インタースティシャル メモリ リーク

Android AdMob はメモリ リークを引き起こしますか?

4

2 に答える 2