2017-03-16 123 views
0

我的应用程序用户可以从应用程序的设置页面更改应用程序语言,所以我使用Resources.updateConfiguration()Context.createConfigurationContext()(用于弃用)来开发它。但几乎开发商与Locale.setDefault()使用,但我不知道为什么。 Locale.setDefault()我的应用程序可以支持多种语言。我读了document,但它看起来太危险了。正在改变JVM的语言环境安全的系统设置或其他应用程序?什么是改变JVM语言环境?我认为使用Resource.updateConfiguration()Context.createConfigurationContext()就足够了,但为什么开发人员使用Locale.setDefault()方法?Locale.setDefault()是否安全?

+0

什么是“太危险”了?区域设置首先用于用户界面,其次用于格式化数字,日期等。你期望发生什么坏事? –

+0

SetDefault基本上是将应用程序语言设置为设备的语言,为此您需要为应用程序授予访问设备运行语言的权限。 – Ricardo

+0

我不同意这一点。她不问,如果将配置的语言环境设置为Locale.getDefault(),会发生什么情况。她对使用Locale.setDefault(Locale)设置JVM默认设置的结果感兴趣。 –

回答

0

我认为“安全”的意思是“不影响其他应用程序”

据我所知的android启动一个新的JVM 例如为每个APK开始/程序。因此Locale.setDefault()不应该影响其他的Android应用程序/应用程序。所以它应该是安全的

我已经完成了它here,并没有看到其他应用程序的影响。

+0

感谢您的回答。我发现这个Android的文档(https://developer.android.com/guide/components/fundamentals.html)。附加给像我这样的其他开发者。 – Stella