我有一个 Android 应用程序,它使用 Google 的 admob 网络显示插页式广告。 admob 的好处是它的 Activity 独立。我可以在我的 MainActivity 中加载广告,只要 admob 准备好广告,它就会显示它,即使我不再在 MainActivity 中也是如此。我已经使用 isLoaded()
方法来展示广告,而且 90% 的时间已经按预期工作了。
但另外 10% 不是。有些 Activity 应该保持无广告状态,因为广告会降低游戏质量。如果手机速度慢或连接速度慢并且加载广告需要一段时间,则广告可能会在错误的 Activity 中弹出。
有什么我可以调用的东西,它会关闭加载的广告并停止加载尚未显示的广告吗?这只会对两个 Activity 生效,而其他 Activity 将保持原样。
所以在我的主要 Activity 中我调用:
Ads.loadAdMobInterstitial(MainActivity.this);
这是我处理广告的类(class):
public class Ads {
public static InterstitialAd loadAdMobInterstitial(final Context context) {
int admobUnitId = string.admob_ad_unit_id;
final InterstitialAd iAd = new InterstitialAd(context);
iAd.setAdUnitId(context.getString(admobUnitId));
iAd.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
iAd.show();
}
});
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.build();
iAd.loadAd(adRequest);
return iAd;
}
}
最佳答案
好的,首先,您应该永远从onAdLoaded()
调用interstitialAd.show()
。正如您所指出的那样,它会导致糟糕的用户体验。您的 Admob 帐户也可能会被禁止。
我怀疑您真正想要做的是将现有的 Activity 重构为 fragment ,并将它们全部托管在您的 MainActivity 中。这样您就可以控制打开/关闭插页式广告。
并确保您是从应用中的自然断点而不是从 onAdLoaded()
开始显示插页式广告。
关于android - 取消/暂停/停止任何插页式广告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25844979/