首页 > 解决方案 > 如何在整个应用会话期间的活动中仅显示一次插页式广告

问题描述

(我的问题是当我回到相同的活动时,我不想再次显示非插页式广告。我只想在整个应用会话中显示插页式广告。)目前我正在使用谷歌 admob 提供的默认插页式广告代码。

    mInterstitialAd = new InterstitialAd(this);
    mInterstitialAd.setAdUnitId(getString(R.string.interstitial_id));
    mInterstitialAd.loadAd(new AdRequest.Builder().build());
    mInterstitialAd.setAdListener(new AdListener() {
        @Override
        public void onAdLoaded() {

            if (mInterstitialAd.isLoaded()) {
                mInterstitialAd.show();
            }
                else {
                Log.d("TAG", "The interstitial wasn't loaded yet.");
            }


        }




    });

标签: javaandroidandroid-studioadmobinterstitial

解决方案


只需保留一个静态布尔变量。加载应用程序后,请确保将布尔变量设置为 false。加载广告后,您可以将其设置为 true。当您退出应用程序时,请确保将其设置回 false(因为应用程序进程可能不会在您退出应用程序后立即被破坏)

    public static isAdLoadedOnce = false;
    ----------------------------------------------

    mInterstitialAd = new InterstitialAd(this);
    mInterstitialAd.setAdUnitId(getString(R.string.interstitial_id));
    mInterstitialAd.loadAd(new AdRequest.Builder().build());
    mInterstitialAd.setAdListener(new AdListener() {
        @Override
        public void onAdLoaded() {

                if (!isAdLoadedOnce & mInterstitialAd.isLoaded()) {
                    mInterstitialAd.show();
                    isAdloadedOnce = true;
                }
                    else {
                    Log.d("TAG", "The interstitial wasn't loaded yet.");
                }
            }
        });

推荐阅读