Android Écoute des modifications de SharedPreferences


Exemple

SharedPreferences sharedPreferences = ...;
sharedPreferences.registerOnSharedPreferenceChangeListener(mOnSharedPreferenceChangeListener);


private final SharedPreferences.OnSharedPreferenceChangeListener mOnSharedPreferenceChangeListener = new SharedPreferences.OnSharedPreferenceChangeListener() {
    @Override
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
        //TODO
    }
}

Notez s'il vous plaît:

  • L'auditeur ne se déclenche que si la valeur a été ajoutée ou modifiée, le réglage de la même valeur ne l'appelera pas;
  • Le programme d'écoute doit être enregistré dans une variable membre et non avec une classe anonyme, car registerOnSharedPreferenceChangeListener stocke avec une référence faible, de sorte qu'il soit récupéré.
  • Au lieu d'utiliser une variable membre, elle peut également être directement implémentée par la classe, puis appeler registerOnSharedPreferenceChangeListener(this);
  • N'oubliez pas de désenregistrer l'écouteur lorsqu'il n'est plus nécessaire d'utiliser unregisterOnSharedPreferenceChangeListener .