¿Cómo eliminar algún par clave / valor de SharedPreferences? He puesto y quito eso de las preferencias.
android
sharedpreferences
Damir
fuente
fuente
Es importante tener en cuenta que, a menos que esté planeando hacer algo con el valor de retorno de la llamada commit (), no hay absolutamente ninguna razón para usar la llamada commit () sincrónica en lugar de la llamada apply () asincrónica.
Tenga en cuenta que si está llamando a esto desde el hilo principal / UI, la UI se bloquea hasta que se complete el commit (). Esto puede tardar más de unos 100 ms en comparación con unos 5 ms para la aplicación. Puede que no parezca mucho, pero si se hace continuamente a lo largo de una aplicación, sin duda se sumará.
Entonces, a menos que esté planeando hacer algo como esto, con suerte en un hilo separado:
editor.remove(String key); boolean success = editor.commit(); if (!success) { // do something }
En su lugar, deberías estar haciendo esto:
editor.remove(String key); editor.apply();
fuente
SharedPreferences.Editor.remove(key) commit();
fuente
Es muy 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(); }
fuente
Así es como abordé este problema.
Primero creé una instancia de SharedPreference como
entonces usé esta sharedPreference como
mobilePreference = this.getSharedPreferences("in.bhartisoftwares.amit.allamitappsthree", Context.MODE_PRIVATE);
Aquí "in.bhartisoftwares.amit.allamitappsthree" es el nombre de mi paquete y estoy usando Context.MODE_PRIVATE, porque quiero manipular esta preferencia compartida solo para este nombre de paquete.
Luego, estoy eliminando la sharedPreference seleccionada (la clave de mi sharedPreference es mobileString) de la siguiente manera:
mobilePreference.edit().remove("mobileString").commit();
Vea el código completo a continuación:
SharedPreferences mobilePreference = this.getSharedPreferences("in.bhartisoftwares.amit.allamitappsthree", Context.MODE_PRIVATE); mobilePreference.edit().remove("mobileString").commit();
fuente
Información
Solo verifique que la
sharedpref
clase se extienda aMap
por eso hay unremove
métodoSharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences.Editor editor = prefs.edit(); editor.remove(String key); editor.apply();
Aquí el editor es el editor de preferencias compartidas.
fuente