我在支持多种语言时遇到问题。我需要帮助来了解正在发生的事情。我注意到的是,每当我更改语言时,例如将语言从英语更改为法语,然后返回我的应用程序,该应用程序将重新启动。当然,这会引起许多问题,因为这种行为是无法预期的。尤其是出现片段时会出现问题,因为片段的生命周期会重置(再次调用onCreateView),但由于它们正在与它后面的活动级别的请求竞争,因此请求不会被调用。
我试图通过使用onConfigurationChanged来防止这种情况的发生,但是,除了超级以外,我不确定要添加什么。在另一篇文章中,建议在超级之前刷新我的观点。但是最终我只是希望我的应用在更改语言时不重置生命周期。
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
我还在“活动”节点下的清单中添加了本地
android:configChanges="locale|orientation|screenSize"
更改语言时不对应用程序进行任何更改的正确方法是什么?这个问题的答案尚不清楚。任何人都有明确有效的说明吗?
答案 0 :(得分:0)
更改语言是非常罕见的事件。即使是大多数使用多种语言的人也从来不会这样做,因为键盘允许您独立更改输入语言。您可能最好只使用它,或者适当地实现onSaveInstanceState / onRestoreInstanceState来正确保存所有状态。