Я регистрирую слушателя изменения предпочтений следующим образом (в onCreate()
моей основной деятельности):
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.registerOnSharedPreferenceChangeListener(
new SharedPreferences.OnSharedPreferenceChangeListener() {
public void onSharedPreferenceChanged(
SharedPreferences prefs, String key) {
System.out.println(key);
}
});
Беда в том, что слушателя не всегда зовут. Он работает первые несколько раз, когда изменяется предпочтение, и затем он больше не вызывается, пока я не удалю и не переустановлю приложение. Никакое количество перезапуска приложения, кажется, не может это исправить.
Я нашел список рассылки нить отчетности такая же проблема, но никто не ответил ему на самом деле. Что я делаю не так?