Мое приложение содержит Сервис для обновления данных в зависимости от значений предпочтений. У меня также есть в приложении приложение PreferenceActivity для изменения этих значений.Удаленное обслуживание и преференцияActivity
Мой сервис реализует 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: На данный момент, предпочтения содержит только массив строк.