android - 更改语言设置会重置应用程序或创建应用程序的另一个实例
问题描述
我在支持多种语言时遇到问题。我需要帮助来了解正在发生的事情。我注意到的是,每当我更改语言时,例如将语言从英语更改为法语,然后返回我的应用程序,应用程序就会重新启动。当然,这会导致许多问题,因为这种行为不是预期的。特别是当 Fragment 可见时会出现问题,因为 Fragment 的生命周期会重置(再次调用 onCreateView)但请求不会调用,因为它们正在与后面的 Activity 级别的请求竞争。
我试图通过使用 onConfigurationChanged 来防止这种情况发生,但是,我不确定除了超级之外要添加什么。在另一篇文章中,有人建议在超级之前刷新我的观点。但最终我只是希望我的应用程序在更改语言时不重置生命周期。
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
我还在我的活动节点下的清单中添加了本地
android:configChanges="locale|orientation|screenSize"
更改语言时不对应用程序进行任何更改的正确方法是什么。对这个问题的回答一直不清楚。任何人都有明确的指示,实际上有效?
解决方案
改变语言是一件非常罕见的事情。即使是大多数会说多种语言的人也从不这样做,因为键盘允许您独立更改输入语言。你可能最好只使用它,或者正确实施 onSaveInstanceState/onRestoreInstanceState 以正确保存所有状态。
推荐阅读
- python - SQLalchemy-如何从 sqlite 文件中提取表?
- api - YouTube 频道:列表 API 未按顺序返回
- firebase - Firebase 托管是否有请求限制?
- python-3.x - 有时在函数内部时,质数生成器最后不返回任何内容
- javascript - 查找值的 XML 节点位置的最简单方法是什么?
- c# - 如何在运行时创建新的父子游戏对象?
- javascript - 使用 Fetch Api 进行 Giphy 搜索
- wordpress-rest-api - 为什么 woocommerce rest api 不起作用?我正在尝试通过 woocommerce rest api 以 json 格式访问产品详细信息
- android - 将数据从 android 应用程序迁移到基于 Windows 的独立应用程序
- python - 如何在一个类的实例上调用 list() 时让一个类返回一个列表