首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >即使在关闭应用程序后仍显示AdMob Interstitial广告

即使在关闭应用程序后仍显示AdMob Interstitial广告
EN

Stack Overflow用户
提问于 2017-09-24 01:33:59
回答 2查看 2.7K关注 0票数 1

我正在使安卓应用程序与AdMob集成在我的应用程序中,我使用AdMob来显示广告后20秒的WebView加载。问题是,当用户在20秒内关闭应用程序时,间隙广告仍然显示,这违反了谷歌AdMob的政策,我如何才能使用户退出活动或应用程序时,间隙广告不应显示

这是我的代码:

代码语言:javascript
复制
new Handler().postDelayed(new Runnable() {
     @Override
     public void run() {
         interAd = new InterstitialAd(MainActivity.this);
         interAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
         AdRequest adRequest = new AdRequest.Builder()
                 .addTestDevice("SEE_YOUR_LOGCAT_TO_GET_YOUR_DEVICE_ID")
                 .build();
         interAd.loadAd(adRequest);
         interAd.setAdListener(new AdListener() {
                @Override
                public void onAdLoaded() {
                    interAd.show();
         }
     });

     interAd.setAdListener(new AdListener() {
         @Override
        public void onAdClosed() {
            // Code to be executed when the interstitial ad is closed.
             Log.i("Ads", "onAdClosed");
            }
        });
    }
} , 20000);
EN

回答 2

Stack Overflow用户

发布于 2017-09-24 01:45:09

在onDestroy调用时传递您的处理程序

代码语言:javascript
复制
Handler myHandler = new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {

            interAd = new InterstitialAd(MainActivity.this);
            interAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
            AdRequest adRequest = new AdRequest.Builder()
                    .addTestDevice("SEE_YOUR_LOGCAT_TO_GET_YOUR_DEVICE_ID")
                    .build();
            interAd.loadAd(adRequest);
            interAd.setAdListener(new AdListener() {
                @Override

                public void onAdLoaded() {
                   if(interAd.isLoaded() && interAd !=null)
                      interAd.show();
                }
            });

            interAd.setAdListener(new AdListener() {

            @Override
            public void onAdClosed() {
                // Code to be executed when the interstitial ad is closed.
                Log.i("Ads", "onAdClosed");
            }
    });

        }
    } , 20000);



 @Override
    protected void onDestroy() {
        Log.d("MainActivty","onDestroy removing callbacks...");
        handler.removeCallbacks(myHandler);
        interAd =null
        super.onDestroy();

}
票数 1
EN

Stack Overflow用户

发布于 2017-09-24 01:44:14

添加onBackpress和onDestroy覆盖,删除处理程序回调,并在每个回调中将interstitialad变量设置为null。

代码语言:javascript
复制
@Override
protected void onBackpressed() {
    handler.removeCallbacks(your handler name here);
    interAd =null
    super.onBackpressed();
}

@Override
protected void onDestroy() {
    handler.removeCallbacks(your handler name here);
    interAd =null
    super.onDestroy();
}

如果你想在你的应用程序进入后台时也处理这个问题,那么也要添加onPause overide。

代码语言:javascript
复制
@Override
protected void onPause() {
    handler.removeCallbacks(your handler name here);
    interAd =null
    super.onPause();
 }

希望这能有所帮助。

如果你需要进一步的帮助,请告诉我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46382451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档