Sto registrando un listener di modifica preferenze come questo (nella onCreate()
mia attività principale):
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.registerOnSharedPreferenceChangeListener(
new SharedPreferences.OnSharedPreferenceChangeListener() {
public void onSharedPreferenceChanged(
SharedPreferences prefs, String key) {
System.out.println(key);
}
});
Il problema è che l'ascoltatore non viene sempre chiamato. Funziona per le prime volte in cui una preferenza viene modificata, quindi non viene più chiamata finché non disinstallo e reinstallo l'app. Nessuna quantità di riavvio dell'applicazione sembra risolverlo.
Ho trovato un thread della mailing list che riportava lo stesso problema, ma nessuno gli ha veramente risposto. Che cosa sto facendo di sbagliato?