Comment supprimer une paire clé / valeur de SharedPreferences? J’ai mis et je supprimer cela des prefs.
SharedPreferences mySPrefs =PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences.Editor editor = mySPrefs.edit(); editor.remove(Ssortingng key); editor.apply();
Ici, l’éditeur est l’éditeur sharedPreferences.
Il est important de noter que, sauf si vous envisagez d’utiliser la valeur de retour de l’appel commit (), il n’y a absolument aucune raison d’utiliser l’appel commit () synchrone au lieu de l’appel apply () asynchrone.
Gardez à l’esprit que si vous appelez cela depuis le thread principal / de l’interface utilisateur, l’interface utilisateur est bloquée jusqu’à ce que le commit () soit terminé. Cela peut prendre plus de 100 ms environ à environ 5 ms pour l’application. Cela peut ne pas sembler beaucoup, mais si cela se fait continuellement tout au long d’une application, cela va certainement s’accumuler.
Donc, à moins que vous ayez l’intention de faire quelque chose comme ça, j’espère sur un fil séparé:
editor.remove(Ssortingng key); boolean success = editor.commit(); if (!success) { // do something }
Vous devriez plutôt faire ceci:
editor.remove(Ssortingng key); editor.apply();
SharedPreferences.Editor.remove(key) commit();
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(); }
Voici comment j’ai abordé ce problème.
J’ai d’abord créé une instance de SharedPreference en tant que
SharedPreferences mobilePreference;
alors j’ai utilisé cette sharedPreference 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 le sharedPreference sélectionné (la clé de mon sharedPreference est mobileSsortingng) comme suit:
mobilePreference.edit().remove("mobileSsortingng").commit();
Voir le code comme complet ci-dessous:
SharedPreferences mobilePreference = this.getSharedPreferences("in.bhartisoftwares.amit.allamitappsthree", Context.MODE_PRIVATE); mobilePreference.edit().remove("mobileSsortingng").commit();
Information
Il suffit de vérifier sharedpref
classe sharedpref
est étendue à Map
c’est pourquoi il existe une méthode remove
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences.Editor editor = prefs.edit(); editor.remove(Ssortingng key); editor.apply();
Ici, l’éditeur est l’éditeur sharedPreferences.