1

JNI メソッドでは、Java オブジェクトへの呼び出しを使用してロケール設定を取得します。

私の JNI 呼び出しは、取得に使用した Locale.getDefault() に似ています。

アプリケーションはシステム ロケールの変更について通知されますか?

したがって、典型的なユースケース:

  1. アプリケーションを実行します。
  2. ネイティブ コードでは、Locale.getDefault(); からロケールを取得します。
  3. デバイスの設定メニューで現在のシステム ロケールを変更します。
  4. ネイティブ コードでは、Locale.getDefault(); からロケールを取得します。

ステップ 4 で現在のロケールに関する実際の情報を取得できますか?

4

2 に答える 2

1

このためにインテントがブロードキャストさACTION_LOCALE_CHANGEDれ、設定の変更が発生したときに通知されます。ただし、通知されずに変更後に呼び出した場合でも、新しいロケール情報を取得できます。

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

于 2012-05-15T09:00:08.400 に答える
0

手順4で現在のロケールに関する実際の情報を取得できますか?

はい、そうします。

しかし、1つの問題があります。

メインアクティビティがネイティブコールによってブロックされた場合、ロケール情報は、メインアクティビティがACTION_LOCALE_CHANGEDを​​受信しないまで変更されません。

于 2012-05-16T05:56:16.667 に答える