为什么我的插页式广告会在按下后退按钮时显示? Android

Why my Interstitial Ads show on back button press? Android

当我点击后退按钮,或者从上一个 activity 返回时,Interstitial Ads 就会显示。但是我想在用户从 activity 1 转到 activity 2 时展示广告。当我稍微更改代码时,插页式广告会显示,但它会阻止将用户发送到 activity 2 .

从 activity 1.activity 2 转到 activity 后按下后退按钮时显示插页式广告的代码。

public void ok(View view) {



        if (InterstitialAd.isLoaded())
            InterstitialAd.show();

         Intent intent = new Intent   (  WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER);

        intent.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, new ComponentName(this, WallpaperService.class));
        startActivity(intent);


    }

显示插页式广告但阻止用户离开的代码 activity 2

 public void ok(View view) {


         Intent intent = new Intent   (  WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER);

        intent.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, new ComponentName(this, WallpaperService.class));
        startActivity(intent);
        if (InterstitialAd.isLoaded())
            InterstitialAd.show();

    }

我认为你应该使用这样的东西:

if (mInterstitialAd.isLoaded()) {
                mInterstitialAd.show();
                mInterstitialAd.setAdListener(new AdListener() {

                    @Override
                    public void onAdClosed() {
                        AdRequest adRequest = new AdRequest.Builder()
                                .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
                                .build();
                        mInterstitialAd.loadAd(adRequest);

                        startActivity(intent);
                        Log.i("Ads", "onAdClosed");
                    }
                });
            } else {
                startActivity(intent);
            }

这意味着当您关闭广告时,它会将您定向到您想要的 activity。如果没有广告加载,那么它会立即将您带到下一个 activity。

你的情况试试:

public void ok(View view) {

    if (InterstitialAd.isLoaded()) {
        InterstitialAd.show();

        Intent intent = new Intent   (  WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER);

        intent.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, new ComponentName(this, WallpaperService.class));

        InterstitialAd.setAdListener(new AdListener() {

                @Override
                public void onAdClosed() {
                    AdRequest adRequest = new AdRequest.Builder()
                            .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
                            .build();
                    InterstitialAd.loadAd(adRequest);

                    startActivity(intent);
                    Log.i("Ads", "onAdClosed");
                }
       });
   } else {
       startActivity(intent);
   }
}