Comment supprimer une paire clé / valeur de SharedPreferences?

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.