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

标签 android admob

我在启动器 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/

相关文章:

android - 使用可绘制对象动画图像

ios - RoboVM Admob 调解

java - 如何知道 Admob 广告横幅现在是否由于调整大小而显示?

php - 登录和注册程序出现错误 nullpointerxeption

android - 如果我们使用多个 APK,BuildConfig.VERSION_CODE 不会改变吗

java - 在所有 Activity 中显示恒定的 admob 广告横幅

android - Admob SMART_BANNER 和 BANNER 之间的区别

android Admob突然停止了

android - OTP( token )应自动从消息中读取

java - 如何修复 ArrayAdapter 在 listView 滚动时改变位置?