estoy registrar un oyente cambio de preferencia como esto (en el onCreate()
de mi actividad principal):SharedPreferences.onSharedPreferenceChangeListener no siendo llamado constantemente
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 el oyente no siempre se llama. Funciona las primeras veces que se cambia una preferencia, y luego ya no se invoca hasta que desinstalo y vuelvo a instalar la aplicación. Ninguna cantidad de reinicio de la aplicación parece solucionarlo.
Encontré una lista de correo thread informando el mismo problema, pero nadie realmente le respondió. ¿Qué estoy haciendo mal?
Esto me estaba matando, pensé que estaba perdiendo la cabeza. ¡Gracias por publicar esta solución! –
¡Esta publicación es GRANDE, muchas gracias, esto podría haberme costado horas de depuración imposible! –
Impresionante, esto es justo lo que necesitaba. Buena explicación también! – stealthcopter