Admob将应用程序区域设置重置为系统默认值

时间:2017-03-14 20:27:27

标签: android admob

我在我的启动器活动中设置了一个本地,在一两秒后,语言环境设置重置为设备的系统区域设置。

经过几个小时的挖掘,我找到了罪魁祸首,google admob。 在启动它的webview时,它会重写Configuration,这会造成混乱,包括布局,字符串等。

我能在这做什么吗?

1 个答案:

答案 0 :(得分:0)

问题是由于在17以上的API上使用了已弃用的updateConfiguration,以下代码解决了问题(在活动中),并设置了持久的区域设置。

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);
}