我在启动器 Activity 中设置了本地,一两秒后区域设置将重置为设备的系统区域设置。
经过几个小时的挖掘,我找到了罪魁祸首,google admob。
在初始化它的 webview 时,它会重写 Configuration
,这会造成布局、字符串等困惑。
我可以在这里做些什么吗?
最佳答案
该问题是由于在高于 17 的 API 上使用已弃用的 updateConfiguration
引起的,以下代码解决了该问题(在 Activity 内),并设置了持久的区域设置。
public void attachBaseContext(Context base) {
Resources resources = base.getResources();
Locale locale = new Locale("ru");
Locale.setDefault(locale);
Configuration config = resources.getConfiguration();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
config.setLocale(locale);
base = base.createConfigurationContext(config);
}
else {
config.locale = locale;
resources.updateConfiguration(config, resources.getDisplayMetrics());
}
super.attachBaseContext(base);
}
关于android - Admob 将应用程序区域设置重置为系统默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42795943/