我需要我的应用程序刷新所有 UI 以使用用户刚刚切换到的新语言环境,而无需重新启动应用程序,有没有办法做到这一点?
例如,当我测试我的应用程序时,我使用的是英语,而现在我改为使用法语,一些 UI 确实更新为以法语显示,而有些仍以英语显示。有什么我可能会丢失的吗?
谢谢!
我需要我的应用程序刷新所有 UI 以使用用户刚刚切换到的新语言环境,而无需重新启动应用程序,有没有办法做到这一点?
例如,当我测试我的应用程序时,我使用的是英语,而现在我改为使用法语,一些 UI 确实更新为以法语显示,而有些仍以英语显示。有什么我可能会丢失的吗?
谢谢!
如果通过设备设置更改了区域设置,则活动的默认行为是系统自动重新创建/重新启动它们,从而使它们有机会使用适当的字符串资源(当然,如果应用程序针对不同的区域设置具有不同的字符串资源)。
这称为С配置更改。其他类型的配置更改将是设备旋转、字体大小更改等。但程序员可以覆盖默认行为,即在 AndroidManifest.xml 中说明绕过或覆盖Activity.onConfigurationChanged()的配置更改。
因此,请确保 (1) 您的应用程序语言环境支持的每个字符串资源都有专用的字符串资源,并且 (2) 您不会阻止此类配置更改的默认配置更改行为。