当活动在后台播放时,我很难区分广告的显示时间。
在我的应用程序中,当用户按下主页按钮或拨打电话时,会调用onPause,结果我销毁当前活动并返回主菜单。我正在使用Admob来显示插页式广告,并且显示一个广告素材会调用OnPause方法,这会导致上述行为。
我不希望因广告显示而终止当前活动,但是对onPause的任何其他调用(通过故意将活动带到后台)应终止当前活动。
我该如何解决?基本上,我如何区分Admob导致的OnPause与其他onPauses
谢谢
答案 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提供的其他回调方法,那么唯一需要注意的事项。