1

在 JNI 方法中,我使用对 Java 对象的调用来获取语言环境设置。

我的 JNI 调用类似于我用来获取它的 Locale.getDefault()。

是否会通知应用程序有关系统区域设置的更改?

所以,典型的用例:

  1. 运行我的应用程序。
  2. 在本机代码中从 Locale.getDefault() 获取语言环境;
  3. 通过设备上的设置菜单更改当前系统区域设置。
  4. 在本机代码中从 Locale.getDefault() 获取语言环境;

我会在第 4 步中获得有关当前语言环境的实际信息吗?

4

2 回答 2

1

为此广播了一个 Intent,ACTION_LOCALE_CHANGED应该让您知道偏好何时发生变化。但是,如果您在更改后调用它而没有收到通知,您仍然会获得新的语言环境信息。

http://developer.android.com/reference/android/content/Intent.html#ACTION_LOCALE_CHANGED

于 2012-05-15T09:00:08.400 回答
0

我会在第 4 步中获得有关当前语言环境的实际信息吗?

好,我会的。

但是有一个问题:

如果主要活动被本地调用阻止,则区域设置信息将不会改变,直到主要活动没有收到 ACTION_LOCALE_CHANGED。

于 2012-05-16T05:56:16.667 回答