2

私のアプリケーションには、他のコンポーネントの中でも PreferenceActivity と Service があります。

設定が変更されたときに、設定の変更に応じてサービスが何らかの作業を行うようにしたいので、サービスを として構成しましたOnSharedPreferenceChangeListener

私の問題は、ユーザーが初めて設定アクティビティに参加したときです。設定は変更されていませんが、OnSharedPreferenceChangeイベントは「preferences.xml」の設定ごとに 1 回発生します。

どうすればこの動作を回避できますか? OnSharedPreferenceChangeユーザーが初めて「設定アクティビティ」に入ったときにイベントが発生したくありません。

ありがとう

4

3 に答える 3

3

私は同じ問題を抱えていましたが、これを使用してこの問題を解決する別の方法を見つけました。

PreferenceManager.setDefaultValues(this, R.xml.preference, false);

このようにして、変更を登録する前に設定のデフォルト値を設定できます。

于 2013-01-15T15:34:48.830 に答える
1

そのように、共有設定でフラグを使用するだけです

 if( prefs.getBoolean( "preferenceFirstTime", true ) ) {
      SharedPreferences.Editor editor = prefs.edit();
      editor.putBoolean("preferenceFirstTime", false);
      editor.commit();
 } else {
      //this is not the first time 
 }
于 2012-07-03T08:37:01.490 に答える