在运行 Android 14 的三星设备上调用 startActivity 后,Activity 会经历创建和销毁的无限循环

问题描述 投票:0回答:2
android kotlin android-activity samsung-mobile android-14
2个回答
0
投票

从Android 12开始,现在有一种新的推荐方式来实现Splash Screen


0
投票

更新:由于我的 BaseActivity 中的以下代码,活动不断被破坏:

protected void onResume() {
        super.onResume();

        loadLocale();
    }

    private void loadLocale(){
        PreferenceHelper preferenceHelper = new PreferenceHelper(this);
        Locale locale = preferenceHelper.getLocale();
        Configuration config = getBaseContext().getResources().getConfiguration();

        if (!config.locale.equals(locale)) {
            Locale.setDefault(locale);
            config.locale = locale;
            getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
            Resources.getSystem().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());

            restartActivity();
        }
    }

由于某种原因,updateConfiguration 实际上并未更新运行 Android 14 的三星设备上的配置。因此 loadLocale 不断重新启动 Activity,因为它认为区域设置永远不匹配。我尝试使用 createConfigurationContext 和 Wrappers 因为 updateConfiguration 已被弃用,但似乎都不起作用。我刚刚注释掉了重新启动活动以解锁用户的行。我稍后会调查为什么配置没有更新。

© www.soinside.com 2019 - 2024. All rights reserved.