在 JNI 方法中,我使用对 Java 对象的调用来获取语言环境设置。
我的 JNI 调用类似于我用来获取它的 Locale.getDefault()。
是否会通知应用程序有关系统区域设置的更改?
所以,典型的用例:
- 运行我的应用程序。
- 在本机代码中从 Locale.getDefault() 获取语言环境;
- 通过设备上的设置菜单更改当前系统区域设置。
- 在本机代码中从 Locale.getDefault() 获取语言环境;
我会在第 4 步中获得有关当前语言环境的实际信息吗?
在 JNI 方法中,我使用对 Java 对象的调用来获取语言环境设置。
我的 JNI 调用类似于我用来获取它的 Locale.getDefault()。
是否会通知应用程序有关系统区域设置的更改?
所以,典型的用例:
我会在第 4 步中获得有关当前语言环境的实际信息吗?
为此广播了一个 Intent,ACTION_LOCALE_CHANGED
应该让您知道偏好何时发生变化。但是,如果您在更改后调用它而没有收到通知,您仍然会获得新的语言环境信息。
http://developer.android.com/reference/android/content/Intent.html#ACTION_LOCALE_CHANGED
我会在第 4 步中获得有关当前语言环境的实际信息吗?
好,我会的。
但是有一个问题:
如果主要活动被本地调用阻止,则区域设置信息将不会改变,直到主要活动没有收到 ACTION_LOCALE_CHANGED。