Eliminar preferencias compartidas

¿Cómo elimino datos de SharedPreferences para mi aplicación?

Estoy creando una aplicación que usa muchos servicios web para sincronizar datos. Para fines de prueba, debo eliminar algunos valores de SharedPreferences cuando reinicio la aplicación.

Para eliminar valores específicos: SharedPreferences.Editor.remove () seguido de un commit()

Para eliminarlos, SharedPreferences.Editor.clear() seguido de un commit()

Si no le importa el valor de retorno y lo está usando desde el hilo principal de su aplicación, considere usar apply() lugar.

Mi solución:

 SharedPreferences preferences = getSharedPreferences("Mypref", 0); preferences.edit().remove("text").commit(); 

Eliminando todas las preferencias:

 SharedPreferences settings = context.getSharedPreferences("PreferencesName", Context.MODE_PRIVATE); settings.edit().clear().commit(); 

Eliminar preferencias individuales:

 SharedPreferences settings = context.getSharedPreferences("PreferencesName", Context.MODE_PRIVATE); settings.edit().remove("KeyName").commit(); 

Si no es necesario eliminarlo cada vez, puede eliminarlo manualmente de:

Configuración -> Aplicaciones -> Administrar aplicaciones -> (elija su aplicación) -> Borrar datos o Desinstalar

Nuevas versiones de Android:

Configuración -> Aplicaciones -> (elija su aplicación) -> Almacenamiento -> Borrar datos y Borrar caché

Eliminar las preferencias compartidas de Android en una línea 🙂

 context.getSharedPreferences("YOUR_PREFS", 0).edit().clear().commit(); 

O apply una operación asincrónica sin locking:

 this.getSharedPreferences("YOUR_PREFS", 0).edit().clear().apply(); 

Parece que toda solución no funciona del todo o está muerta

para borrar todas las SharedPreferences en una actividad

  PreferenceManager.getDefaultSharedPreferences(getBaseContext()). edit().clear().apply(); 

Llama esto desde la actividad principal después de onCreate

nota * yo usé

 .apply() 

en lugar de

 .commit() 

usted es libre de elegir commit ();

Puede usar el shell adb para hacer esto incluso sin un teléfono rooteado. La única pega es que la aplicación debe ser depurable.

 run-as   

Por ejemplo:

 run-as com.asdf.blah rm /data/data/com.asdf.blah/databases/myDB.db 

Alternativamente, puede hacer lo anterior pero sin el comando que lo dirigirá a la raíz del paquete de la aplicación y le permitirá ejecutar más comandos en el contexto de la aplicación.

 Editor editor = getSharedPreferences("clear_cache", Context.MODE_PRIVATE).edit(); editor.clear(); editor.commit(); 

Prueba este código:

 SharedPreferences sharedPreferences = getSharedPreferences("fake", Context.MODE_PRIVATE); SharedPreferences.Editor edit = sharedPreferences.edit(); edit.clear().commit(); 

en las definiciones de clase

 private static final String PREFERENCES = "shared_prefs"; private static final SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences(PREFERENCES, MODE_PRIVATE); 

dentro de la clase

 public static void deleteAllSharePrefs(){ sharedPreferences.edit().clear().commit(); } 

También puede simplemente desinstalar manualmente su aplicación usando su dispositivo. Luego, cuando reinstalas tu aplicación, las preferencias compartidas se han restablecido.

  PreferenceManager.getDefaultSharedPreferences(context).edit().clear().apply(); 

// borrarlos a todos

A partir de API 24 (Nougat) puedes hacer lo siguiente:

 context.deleteSharedPreferences("YOUR_PREFS"); 

Sin embargo, no hay compatibilidad con versiones anteriores, por lo que si admite menos de 24, siga con:

 context.getSharedPreferences("YOUR_PREFS", Context.MODE_PRIVATE).edit().clear().apply(); 
  • Para eliminar un valor particular,

SharedPreferences.Editor remove (clave String) seguido de un commit () o un apply ()

  • Para eliminar todos los valores,

    SharedPreferences.Editor clear () seguido de un commit () o un apply ()

Para borrar todas las SharedPreferences de forma central desde cualquier clase:

 public static SharedPreferences.Editor getEditor(Context context) { return getPreferences(context).edit(); } 

A continuación, desde cualquier clase: (Confirmar retorno booleano en el que puede verificar si sus Preferencias se borraron o no)

  Navigation.getEditor(this).clear().commit(); 

O bien: puede usar Apply: devuelve void Navigation.getEditor (this) .clear (). Apply ();

Si es para tu prueba. Puedes usar comandos adb.

 adb shell pm clear  

Para eliminar los pares de valores clave de preferencia, puede hacer lo siguiente fácilmente

 getActivity().getSharedPreference().editor().remove("key").apply(); 

También he desarrollado una biblioteca para facilitar la manipulación de las preferencias compartidas. Puede encontrar el siguiente enlace

https://github.com/farruhha/SimplePrefs

Puede use-> preferences.edit().remove("key").commit(); para eliminar el valor guardado de las preferencias compartidas.

Solo hice esto esta mañana. Desde un símbolo del sistema:

 adb shell cd /data/data/YOUR_PACKAGE_NAME/shared_prefs rm * // to remove all shared preference files rm YOUR_PREFS_NAME.xml // to remove a specific shared preference file 

NOTA : Esto requiere un dispositivo rooteado, como los dispositivos virtuales Android en existencia, un dispositivo Genymotion, o un teléfono / tableta realmente rooteado, etc.

La forma más rápida de hacerlo mientras desarrolla / prueba sería

desinstalación adb

Ejemplo: $ adb uninstall com.example.myappname