Ich registriere einen Listener für Präferenzänderungen wie folgt (in onCreate()
meiner Hauptaktivität):
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.registerOnSharedPreferenceChangeListener(
new SharedPreferences.OnSharedPreferenceChangeListener() {
public void onSharedPreferenceChanged(
SharedPreferences prefs, String key) {
System.out.println(key);
}
});
Das Problem ist, dass der Hörer nicht immer angerufen wird. Es funktioniert für die ersten Male, wenn eine Einstellung geändert wird, und wird dann nicht mehr aufgerufen, bis ich die App deinstalliere und neu installiere. Kein Neustart der Anwendung scheint das Problem zu beheben.
Ich habe einen Mailinglisten- Thread gefunden , der das gleiche Problem meldet, aber niemand hat ihm wirklich geantwortet. Was mache ich falsch?