android应用程序会获得有关系统区域设置更改的消息吗

时间:2012-05-15 08:56:07

标签: java android android-ndk java-native-interface

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

我的JNI调用类似于我以前使用的Locale.getDefault()。

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

所以,典型的用例:

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

    我是否会在步骤4中获得有关当前区域设置的实际信息?

2 个答案:

答案 0 :(得分:1)

为此广播一个意图,ACTION_LOCALE_CHANGED会在首选项发生更改时通知您。但是,如果您在未经通知的情况下更改后调用它,您仍将获得新的区域设置信息。

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

答案 1 :(得分:0)

我是否会在步骤4中获得有关当前区域设置的实际信息?

是的,我会。

但有一个问题:

如果主要活动被本机呼叫阻止,则在主要活动未恢复ACTION_LOCALE_CHANGED之前,区域设置信息不会更改。