J'enregistre un écouteur de changement de préférence comme celui-ci (dans le onCreate()
de mon activité principale):
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.registerOnSharedPreferenceChangeListener(
new SharedPreferences.OnSharedPreferenceChangeListener() {
public void onSharedPreferenceChanged(
SharedPreferences prefs, String key) {
System.out.println(key);
}
});
Le problème est que l'auditeur n'est pas toujours appelé. Cela fonctionne pour les premières fois une préférence est modifiée, puis elle n'est plus appelée jusqu'à ce que je désinstalle et réinstalle l'application. Aucun redémarrage de l'application ne semble le résoudre.
J'ai trouvé un fil de liste de diffusion signalant le même problème, mais personne ne lui a vraiment répondu. Qu'est-ce que je fais mal?