Rejestruję odbiornik zmiany preferencji w ten sposób (w onCreate()
mojej głównej działalności):
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.registerOnSharedPreferenceChangeListener(
new SharedPreferences.OnSharedPreferenceChangeListener() {
public void onSharedPreferenceChanged(
SharedPreferences prefs, String key) {
System.out.println(key);
}
});
Problem w tym, że słuchacz nie zawsze jest wywoływany. Działa po raz pierwszy, gdy preferencje są zmieniane, a następnie nie są wywoływane, dopóki nie odinstaluję i ponownie nie zainstaluję aplikacji. Wydaje się, że żadna ilość ponownego uruchomienia aplikacji nie naprawi tego.
Znalazłem wątek na liście mailingowej zgłaszający ten sam problem, ale tak naprawdę nikt mu nie odpowiedział. Co ja robię źle?