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