android - 如果应用程序在后台运行时更改了设备语言,如何检查片段内部?
问题描述
当设备语言更改并且应用程序在后台运行时,我正在尝试刷新片段内的活动。
我创建了此方法来重新创建活动,但我不知道何时调用此方法以及如何检查语言是否已更改。
private fun recreateActivity() {
val intent = activity!!.intent
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
activity!!.finish()
activity!!.overridePendingTransition(0, 0)
startActivity(intent)
activity!!.overridePendingTransition(0, 0)
}
你能告诉我如何处理这个吗?
解决方案
当应用程序进入前台onResume
时,Activity 的生命周期方法将被调用,您可以在其中使用以下代码获取国家和语言:
Locale locale = getResources().getConfiguration().locale;
语言环境由两部分组成:语言和国家。
推荐阅读
- java - When is it appropriate to use result.success(null)?
- c# - 如何将字符串转换为类引用并将其发送到泛型类
- javascript - 使用代码而不使用窗口 onload 事件
- visual-studio - 来自 Visual Studio 2019 的 Libman (CDNJS) 中的 Bootstrap 4 库名称
- linux - 在生产环境中运行 CLI 时保持密码抽象
- git - 编程练习的 Git 分支策略?
- c# - 在 Specflow 和 Nunit 上并行执行期间访问测试范围
- python - Django DateTime 序列化
- css - 为什么锚相邻兄弟不能与其他元素标签一起使用?
- javascript - Tabulator - 使用 ajax 获取 JSON 文件