Estoy registrando un oyente de cambio de preferencia como este (en el onCreate()
de mi actividad principal):
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.registerOnSharedPreferenceChangeListener(
new SharedPreferences.OnSharedPreferenceChangeListener() {
public void onSharedPreferenceChanged(
SharedPreferences prefs, String key) {
System.out.println(key);
}
});
El problema es que no siempre se llama al oyente. Funciona las primeras veces que se cambia una preferencia, y luego ya no se llama hasta que desinstale y vuelva a instalar la aplicación. Ninguna cantidad de reinicio de la aplicación parece solucionarlo.
Encontré un hilo de la lista de correo informando el mismo problema, pero nadie realmente le respondió. ¿Qué estoy haciendo mal?