在我的应用程序中,如果我通过在模拟器中拖放apk来重新安装应用程序,或者通过从不加载广告来重启模拟器后启动应用程序。
我试图调查原因,但原因似乎是,在这种情况下,Android“忘记了”插页式广告的存在,听起来可能很愚蠢:
interstitialAds.loadAd(adr);
CountDownTimer mcdf=new CountDownTimer(600000,5000) {
@Override
public void onTick(long l) {
if (interstitialAds.isLoading()) {
Toast.makeText(getBaseContext(), "Ad loading", Toast.LENGTH_LONG).show();
}
if (interstitialAds.isLoaded()) {
Toast.makeText(getBaseContext(), "Ad loaded", Toast.LENGTH_LONG).show();
}
}
@Override
public void onFinish() {
if (!interstitialAds.isLoaded()) {
interstitialAds.loadAd(adr);
}
}
}.start();
我得到的是显示3次“广告加载”的行为,此后不再显示Toast,另一方面,如果我第二次执行该程序,则会得到预期的行为:显示“广告加载” 1或2次,其余时间会定期显示“广告已加载”。
我敢打赌这是一个模拟器错误,但也许我缺少了一些东西。
我认为,帮助我解决此问题的最佳方法是让拥有API 27物理设备的人在上述情况下检查interstitialAd是否已加载(在仍安装了前一个并在启动后重新安装应用)
在我的清单中以这种方式定义插页式广告,以防万一会产生任何效果:
<activity android:name="com.google.android.gms.ads.AdActivity"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
tools:replace="android:theme"
/>