显示admob interstitial call onPause,与拨打电话一样

时间:2014-01-27 20:32:25

标签: android admob

当活动在后台播放时,我很难区分广告的显示时间。

在我的应用程序中,当用户按下主页按钮或拨打电话时,会调用onPause,结果我销毁当前活动并返回主菜单。我正在使用Admob来显示插页式广告,并且显示一个广告素材会调用OnPause方法,这会导致上述行为。

我不希望因广告显示而终止当前活动,但是对onPause的任何其他调用(通过故意将活动带到后台)应终止当前活动。

我该如何解决?基本上,我如何区分Admob导致的OnPause与其他onPauses

谢谢

2 个答案:

答案 0 :(得分:0)

我没有关注你的用例。

基本上你应该同样对待这两种情况。用户已离开该应用。

在onPause期间,您不应该对活动进行任何明确的破坏。您可能希望终止或休眠一些工件,例如Threads等。

答案 1 :(得分:0)

您使用的是哪个版本的AdMob SDK?此解决方案适用于Google Play服务。

让我们说这就是你设置插页式广告的方式:

//Here is where you setup your interstitial
//...
adView.setAdListener(new AdListener() {
    @Override
    public void onAdLoaded(){
        adView.show();
    }
});

在onPause()方法中,您可以执行以下操作:

protected void onPause() {
    super.onPause();

    if(adView != null) {
        adView.setAdListener(null);
    }
}

这是有效的,因为当由于新的插页式广告而调用onPause方法时,广告已经处于显示过程中并且将正常显示。但是,如果因为其他内容而调用了onPause(),例如按下了Home按钮,则会禁止显示新的插页式广告。

如果你正在使用AdListener提供的其他回调方法,那么唯一需要注意的事项。