Comment supprimer une paire clé / valeur de SharedPreferences? J'ai mis et je supprime cela de prefs.
90
Comment supprimer une paire clé / valeur de SharedPreferences? J'ai mis et je supprime cela de prefs.
SharedPreferences mySPrefs = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = mySPrefs.edit();
editor.remove(key);
editor.apply();
Ici, l'éditeur est l'éditeur sharedPreferences.
Il est important de noter qu'à moins que vous ne prévoyiez de faire quelque chose avec la valeur de retour de l'appel commit (), il n'y a absolument aucune raison d'utiliser l'appel synchrone commit () au lieu de l'appel asynchrone apply ().
Gardez à l'esprit que si vous appelez cela à partir du thread principal / UI, l'interface utilisateur est bloquée jusqu'à ce que la validation () soit terminée. Cela peut prendre jusqu'à environ 100 ms, à environ 5 ms pour l'application. Cela peut ne pas sembler beaucoup, mais si cela est fait continuellement tout au long d'une application, cela s'additionnera certainement.
Donc, à moins que vous ne prévoyiez de faire quelque chose comme ça, espérons-le sur un fil séparé:
editor.remove(String key); boolean success = editor.commit(); if (!success) { // do something }
Vous devriez plutôt faire ceci:
editor.remove(String key); editor.apply();
la source
SharedPreferences.Editor.remove(key) commit();
la source
C'est très simple:
private SharedPreferences sharedPreferences() { return PreferenceManager.getDefaultSharedPreferences(mContext); } public void clearSharedPreferences() { sharedPreferences() .edit() .remove(SOME_KEY_1) .remove(SOME_KEY_2) .remove(SOME_KEY_3) .apply(); }
la source
Voici comment j'ai abordé ce problème.
J'ai d'abord créé une instance de SharedPreference en tant que
puis j'ai utilisé cette préférence partagée comme
mobilePreference = this.getSharedPreferences("in.bhartisoftwares.amit.allamitappsthree", Context.MODE_PRIVATE);
Ici "in.bhartisoftwares.amit.allamitappsthree" est le nom de mon package et j'utilise Context.MODE_PRIVATE, car je souhaite manipuler cette préférence partagée uniquement pour ce nom de package.
Ensuite, je supprime la sharedPreference sélectionnée (la clé de ma sharedPreference est mobileString) comme suit:
mobilePreference.edit().remove("mobileString").commit();
Voir le code comme complet ci-dessous:
SharedPreferences mobilePreference = this.getSharedPreferences("in.bhartisoftwares.amit.allamitappsthree", Context.MODE_PRIVATE); mobilePreference.edit().remove("mobileString").commit();
la source
Information
Vérifiez simplement que la
sharedpref
classe est étendue àMap
c'est pourquoi il existe uneremove
méthodeSharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences.Editor editor = prefs.edit(); editor.remove(String key); editor.apply();
Ici, l'éditeur est l'éditeur sharedPreferences.
la source