更改语言设置会重置应用程序或创建该应用程序的另一个实例

时间:2018-09-20 00:37:54

标签: android locale

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

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

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

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

android:configChanges="locale|orientation|screenSize"

更改语言时不对应用程序进行任何更改的正确方法是什么?这个问题的答案尚不清楚。任何人都有明确有效的说明吗?

1 个答案:

答案 0 :(得分:0)

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