gpt4 book ai didi

android - Android 4.1+ 语言环境更改后 Activity 闪烁

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:04:01 24 4
gpt4 key购买 nike

大约一年前我实现了自定义区域设置选择,但在 4.1 版本发布后,用户开始提示不断的 Activity 闪烁。这是我正在使用的代码(根据不同的 SO 答案编译):

public final class TestApplication extends Application
{
private Locale desiredLocale = new Locale("ru-RU");

@Override
public void onCreate() {
super.onCreate();
updateLocale(new Configuration());
}

@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
updateLocale(newConfig);
}

private void updateLocale(Configuration newConfig) {
newConfig.locale = desiredLocale;
Locale.setDefault(desiredLocale);
getBaseContext().getResources().updateConfiguration(newConfig, getBaseContext().getResources().getDisplayMetrics());
}
}

应用程序仅包含一个空 Activity ,在我更改设备方向后,Android 每秒重新创建一次。 Here是样本来源。

看起来所有使用此技术的应用程序都失效了。什么是正确的做法?

最佳答案

此行导致解决方案失败:

getBaseContext().getResources().updateConfiguration(newConfig, getBaseContext().getResources().getDisplayMetrics());

这里定义了正确的(至少它是有效的)实现 https://stackoverflow.com/a/14010044/554336 :

Configuration config = new Configuration();
config.locale = locale;
getResources().updateConfiguration(config, getResources().getDisplayMetrics());

所以每次都应该创建新的配置实例。

关于android - Android 4.1+ 语言环境更改后 Activity 闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15406345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com