Android 如何调用多个间隙广告?

Android 如何调用多个间隙广告?,android,admob,ads,interstitial,Android,Admob,Ads,Interstitial,我在我的应用程序中添加了间隙广告(+横幅),其中包含一个活动,横幅没有问题,但间隙广告只在应用程序启动时显示一次,我的应用程序不包含任何按钮或操作,只是一个pdfview,我想做的是当用户阅读pdf时,每隔5分钟显示一次广告。我搜索了类似的问题,但没有找到。下面是我加载和显示广告的代码: AdView mAdView = (AdView) findViewById(R.id.adView); AdRequest adRequest = new AdRequest.Builder(

我在我的应用程序中添加了间隙广告(+横幅),其中包含一个活动,横幅没有问题,但间隙广告只在应用程序启动时显示一次,我的应用程序不包含任何按钮或操作,只是一个pdfview,我想做的是当用户阅读pdf时,每隔5分钟显示一次广告。我搜索了类似的问题,但没有找到。下面是我加载和显示广告的代码:

    AdView mAdView = (AdView) findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();
    mAdView.loadAd(adRequest);

    // Prepare the Interstitial Ad
    interstitial = new InterstitialAd(PDFViewActivity.this);
    // Insert the Ad Unit ID
    interstitial.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
    interstitial.loadAd(adRequest);
    // Prepare an Interstitial Ad Listener
    interstitial.setAdListener(new AdListener() {
        public void onAdLoaded() {
            // Call displayInterstitial() function
            displayInterstitial();
        }
    });
}

public void displayInterstitial() {
// If Ads are loaded, show Interstitial else show nothing.
    if (interstitial.isLoaded()) {
        interstitial.show();
    }
}
我是这样做的:

AdView mAdView = (AdView) findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();
    mAdView.loadAd(adRequest);

    // Prepare the Interstitial Ad
    interstitial = new InterstitialAd(this);
    interstitial.setAdUnitId("ca-app-pub-3940256099942544/1033173712");

    interstitial.loadAd(adRequest);

    interstitial.setAdListener(new AdListener() {
        public void onAdLoaded() {
            displayInterstitial();
        }
        public void onAdClosed() {
            requestNewInterstitial();
        }

    });
}

public void displayInterstitial() {
// If Ads are loaded, show Interstitial else show nothing.
    if (interstitial.isLoaded()) {
        interstitial.show();
    }
}

public void requestNewInterstitial() {
    mHandler.postDelayed(new Runnable() {
        @Override
        public void run() {
            AdRequest adRequest = new AdRequest.Builder()
                    .build();
            interstitial.loadAd(adRequest);

            if (mHandler != null) {
                mHandler.postDelayed(this, 100000); //time (ms)
            }
        }
    }, 100000); //time (ms)
}

好的,你们试着以固定的时间间隔显示中间的广告。您可以使用下面的代码行来完成

然而,这与谷歌admob的政策背道而驰。但是给你

在mainActivity.java中添加以下代码

prepareAd();

    ScheduledExecutorService scheduler =
            Executors.newSingleThreadScheduledExecutor();
    scheduler.scheduleAtFixedRate(new Runnable() {

        public void run() {
            Log.i("hello", "world");
            runOnUiThread(new Runnable() {
                public void run() {
                    if (mInterstitialAd.isLoaded()) {
                        mInterstitialAd.show();
                    } else {
                       Log.d("TAG"," Interstitial not loaded");
                    }

                    prepareAd();


                }
            });

        }
    }, 20, 20, TimeUnit.SECONDS);
然后在MainActivity.java的最后一个花括号前添加以下代码行

public void  prepareAd(){
    mInterstitialAd = new InterstitialAd(this);
    mInterstitialAd.setAdUnitId("ca-app-pub-39xxx560xxxxxxx/10331xxxxx");
    mInterstitialAd.loadAd(new AdRequest.Builder().build());
}

public void  prepareAd(){
    mInterstitialAd = new InterstitialAd(this);
    mInterstitialAd.setAdUnitId("ca-app-pub-39xxx560xxxxxxx/10331xxxxx");
    mInterstitialAd.loadAd(new AdRequest.Builder().build());
}

这里使用的填隙式AdMob ID是一个示例ID。代码取自

,请仔细考虑这个想法。首先,这不是谷歌提出的显示间隙的方式。第二,你会用这种恼人的行为激怒你的用户,所以他们永远不会点击并卸载你的应用。如果你认为你比你的用户更了解它,那么祝你好运;)