jvm Locale.setDefault()安全吗?

c86crjj0  于 2022-11-07  发布在  其他
关注(0)|答案(2)|浏览(137)

我的应用程序用户可以从应用程序的设置页面更改应用程序语言,因此我使用Resources开发了它。updateConfiguration()和上下文。创建配置上下文()(不赞成)。然而,几乎开发人员使用Locale.setDefault(),但我不知道为什么。我的应用程序可以支持多语言没有Locale.setDefault()。我读文档,但这似乎太危险了。更改JVM的区域设置对系统设置或其他应用程序安全吗?更改JVM区域设置的目的是什么?我认为这是使用Resource.updateConfiguration()Context.createConfigurationContext()就够了,但开发人员为什么要使用Locale.setDefault()方法呢?

s2j5cfk0

s2j5cfk01#

我假设“安全”意味着“不影响其他应用程序”
据我所知,android会为每一个启动的apk/app启动一个新的 JVM 示例。因此Locale.setDefault()应该不会影响其他android apk/app。所以它应该是安全的
我已经在这里做了,没有看到对其他应用程序的影响。

5lhxktic

5lhxktic2#

According to Locale.setDefault() documentation. setDefault()的作用是
设置此Java虚拟机示例的默认区域设置。这不会影响主机区域设置。
这里的host locale引用了Android操作系统的区域设置,而Java Virtual Machine (JVM) instance将转换为Android术语中的Android运行时(ART)示例,根据这些信息,我们可以推断,由于每个Android应用进程都运行自己独立的ART示例,这意味着setDefault()将 * 仅 * 影响一个Android应用进程,而不是整个操作系统或任何其他应用进程。

相关问题