私のアプリケーションには、設定値に応じてデータを更新するサービスが含まれています。 私のアプリケーションでは、これらの値を変更するためのPreferenceActivityもあります。リモートサービスとPreferenceActivity
私のサービスはOnSharedPreferenceChangeListenerを実装し、設定を取得してリスナーを登録します。私は環境設定値を取得できますが、データアクティビティの設定を変更すると、onSharedPreferencesChangedは呼び出されません(データは更新されません)。
PreferenceActivityとサービスをバインドせずにこれを修正する方法はありますか?
おかげ
public class EventsService extends Service implements OnSharedPreferenceChangeListener {
...
private SharedPreferences preferences;
...
@Override
public void onCreate() {
super.onCreate();
...
preferences = PreferenceManager.getDefaultSharedPreferences(this);
preferences.registerOnSharedPreferenceChangeListener(this);
...
}
//On the same way i unregistered the listener onDestroy()
private TimerTask updateTask = new TimerTask() {
@Override
public void run() {
....
Log.v(TAG,"PREF : "+Integer.parseInt(preferences.getString("special_reminder_minutes","10")));
....
}
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
Log.d(TAG,"PREF CHANGED O -----------------------");
}
}
NB:今のところ、好みだけで文字列の配列が含まれています。