小编Mik*_*ail的帖子

Android 4.1+ 中区域设置更改后 Activity 闪烁

大约一年前,我已经实现了自定义区域设置选择,但在 4.1 版本之后,用户开始抱怨活动不断闪烁。这是我正在使用的代码(从不同的答案编译):

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());        
    }    
}
Run Code Online (Sandbox Code Playgroud)

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

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

configuration android locale blink android-activity

6
推荐指数
1
解决办法
2535
查看次数

标签 统计

android ×1

android-activity ×1

blink ×1

configuration ×1

locale ×1