当系统语言更改时,我想在我的Application类中得到通知。 我的应用程序类:
class MyApp : Application() {
override fun onConfigurationChanged(newConfig: Configuration?) {
Log.d("yyy", "onConfigurationChanged, old locale " + resources.configuration.locale + " new locale " + newConfig?.locale)
super.onConfigurationChanged(newConfig)
}
}
我会假设,如果将当前语言环境与调用super.onConfigurationChanged(newConfig)
之前的新语言环境 进行比较,则它们会有所不同,但是当我将系统语言环境设置为例如在Android设置应用中,En_US
已返回resources.configuration.locale
(新配置也返回了En_US
),因此我无法检查语言环境的方式是否实际更改。
我的解决方案是将所选语言环境保存在应用程序onCreate()
中,并将其与onConfigurationChanged()
中的新语言环境进行比较。
onConfigurationChanged
会表现这种方式?