我也遇到了类似的问题,请看我的闪烁:
https://www.youtube.com/watch?v=AfKbrw2qQmg https://www.youtube.com/watch?v=AfKbrw2qQmg
在我的例子中触发它的是我在应用程序级别所做的配置更改(区域设置更改)。
Configuration config = getBaseContext().getResources().getConfiguration();
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
config.setLocale(mLocale);
} else{
config.locale = mLocale;
}
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics()); // <--- THIS IS THE PROBLEM, WHY I DON'T KNOW
Where mLocale
是一个作为Locale
设置已更改的对象。
我尝试自己在清单代码中处理配置更改,因为这可能是应用程序/活动神奇地重新启动自身的原因(感谢 Android):
...
<application
android:name="com.myapp.myapp"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection"
android:allowBackup="true"
android:hardwareAccelerated="true"
android:icon="@drawable/icon"
....
但这没有任何效果。
因此,我对这个模糊问题的回应是检查您的应用程序是否对配置进行了一些更改并重新评估。
adMob 支持人员也记录了问题,他们非常乐于尝试和提供帮助https://groups.google.com/forum/#!category-topic/google-admob-ads-sdk/android/b1K4Ow59eWY https://groups.google.com/forum/#!category-topic/google-admob-ads-sdk/android/b1K4Ow59eWY