首页 > 解决方案 > 更改语言设置会重置应用程序或创建应用程序的另一个实例

问题描述

我在支持多种语言时遇到问题。我需要帮助来了解正在发生的事情。我注意到的是,每当我更改语言时,例如将语言从英语更改为法语,然后返回我的应用程序,应用程序就会重新启动。当然,这会导致许多问题,因为这种行为不是预期的。特别是当 Fragment 可见时会出现问题,因为 Fragment 的生命周期会重置(再次调用 onCreateView)但请求不会调用,因为它们正在与后面的 Activity 级别的请求竞争。

我试图通过使用 onConfigurationChanged 来防止这种情况发生,但是,我不确定除了超级之外要添加什么。在另一篇文章中,有人建议在超级之前刷新我的观点。但最终我只是希望我的应用程序在更改语言时不重置生命周期。

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

我还在我的活动节点下的清单中添加了本地

android:configChanges="locale|orientation|screenSize"

更改语言时不对应用程序进行任何更改的正确方法是什么。对这个问题的回答一直不清楚。任何人都有明确的指示,实际上有效?

标签: androidlocale

解决方案


改变语言是一件非常罕见的事情。即使是大多数会说多种语言的人也从不这样做,因为键盘允许您独立更改输入语言。你可能最好只使用它,或者正确实施 onSaveInstanceState/onRestoreInstanceState 以正确保存所有状态。


推荐阅读