【问题标题】:Why my Interstitial Ads show on back button press? Android为什么我的插页式广告会在按下后退按钮时显示?安卓
【发布时间】:2019-09-03 12:20:31
【问题描述】:

当我单击返回按钮或从上一个活动返回时,会显示插页式广告。但是我想在用户从活动 1 转到活动 2 时显示广告。当我稍微更改代码时,插页式广告会显示,但它会阻止将用户发送到活动 2。

从活动 1 转到活动 2 后按返回按钮时显示插页式广告的代码。

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);


    }

显示插页式广告但阻止用户进行活动的代码 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();

    }

【问题讨论】:

    标签: android admob


    【解决方案1】:

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

    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);
                }
    

    这意味着当您关闭广告时,它会将您引导至您的预期活动。如果没有广告加载,那么它会立即将您带到下一个活动。

    在你的情况下尝试:

    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);
       }
    }
    

    【讨论】:

    • 是的@Samartian 你明白。如何将您的代码放入我的代码中?它给出了一些错误。我的代码如下。 public void ok(View view) { if (InterstitialAd.isLoaded()) InterstitialAd.show();意图意图 = 新意图(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER); intent.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, new ComponentName(this, WallpaperService.class));开始活动(意图); }
    • 我添加了与您的代码相关的代码。希望对您有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多