我正在这个 Android 应用程序上实现插页式横幅,并希望它们在用户通过后退按钮完成()应用程序时出现。通过 AdMob 中介使用单独的 AdMob 插页式广告时,它已经可以正常工作了,这样:
@Override
public void finish() {
if (isBannerAllowed() && InterstitialBannerFactory.getInsterstitialSingleton().isReady()) {
InterstitialBannerFactory.getInsterstitialSingleton().show();
}
finish();
}
它显示 AdMob 横幅,当用户关闭时,它将以预期的方式完成应用程序。
但是,当我在中介中包含 InMobi 插页式横幅时,它会显示横幅,但会立即完成应用程序(严格来说是应用程序剩余的最后一个活动),而没有给用户查看横幅的机会。它出现并突然结束。
我知道会发生这种情况,因为在某种程度上,最终的 finish() 不适用于 InMobi 插页式广告。我已经尝试过这样做:
@Override
public void finish() {
setAppFinishing(true);
if (isBannerAllowed() && InterstitialBannerFactory.getInsterstitialSingleton().isReady()) {
InterstitialBannerFactory.getInsterstitialSingleton().show();
}
}
请注意开头的 setAppFinishing(true) 和结尾的 finish() 的删除。
它变得更好了,因为它显示了 InMobi 插页式广告。但是会阻止用户通过后退按钮退出应用程序。
然后我在 AdListerner 的 onDismissScreen() 上尝试了这个来补充上面的代码:
@Override
public void onDismissScreen(Ad ad) {
// prepares the next
if (!isAppFinishing()) {
InterstitialBannerFactory.loadAd();
}
else {
finish();
}
}
但它没有生效,行为是相同的,应用程序没有退出。
有没有人有更聪明的解决方案?
顺便说一句,我正在使用所有相关库的最新版本。
问候。