我在使用适用于 Android 的 admob 的插页式广告方面遇到问题,即使我点击主页按钮或转到后台,它仍然是商业视频。有谁知道如何解决这个问题?
我已经搜索了一整天,但找不到它。有人说我们无法控制广告。但是当我们点击设备上的主页按钮或应用程序进入后台时,Youtube android 应用程序能够暂停。
我在使用适用于 Android 的 admob 的插页式广告方面遇到问题,即使我点击主页按钮或转到后台,它仍然是商业视频。有谁知道如何解决这个问题?
我已经搜索了一整天,但找不到它。有人说我们无法控制广告。但是当我们点击设备上的主页按钮或应用程序进入后台时,Youtube android 应用程序能够暂停。
您使用的是哪个版本的 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 方法因新的插页式广告而被调用时,广告已经处于展示过程中,并且会正常展示。但是,如果由于其他原因(例如按下 Home 按钮)调用了 onPause(),它将禁止显示新的插页式广告。
唯一需要注意的是,如果您正在使用 AdListener 提供的其他回调方法。
声明一个全局变量
boolean isActivityIsVisible = true;
根据活动生命周期更新变量
@Override
protected void onPause() {
super.onPause();
isActivityIsVisible = false;
}
@Override
protected void onResume() {
super.onResume();
isActivityIsVisible = true;
}
检查 Activity 在插页式广告回调中是否可见,如果可见则显示。
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
requestNewInterstitial();
}
public void onAdLoaded(){
if (isActivityIsVisible) { mInterstitialAd.show(); }
}
});