Eliminación de preferencias compartidas

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

Estoy creando una aplicación que utiliza una gran cantidad de servicios web para sincronizar datos. Para propósitos de prueba necesito borrar algunos valores SharedPreferences cuando reinicie la aplicación.

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

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

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

Mi solución:

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

Eliminación de todas las preferencias:

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

Eliminación de una sola preferencia:

 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

Cómo eliminar las preferencias compartidas de Android en una sola línea 🙂

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

O apply para la operación asincrónica sin bloqueo:

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

Puede utilizar el shell de adb para hacer esto incluso sin un teléfono con raíces. La única captura es que la aplicación debe ser debuggable.

 run-as <your package name> <command> 

Por ejemplo:

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

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

Parece que toda la solución no está funcionando completamente o fuera de la muerte

Para borrar todas las preferencias compartidas en una actividad

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

Llame a esto desde la actividad principal después de crear

Nota que usé

 .apply() 

en lugar de

 .commit() 

Usted es libre de elegir commit ();

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

Pruebe este código:

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

// limpiarlos todos

También puede desinstalar manualmente su aplicación utilizando su dispositivo. Luego, cuando reinstale su aplicación, las preferencias compartidas se han restablecido.

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(); } 

Para borrar todas las SharedPreferences de forma centralizada de cualquier clase:

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

Entonces, de cualquier clase: (Devolver booleano donde puedes comprobar si tus Preferencias se han eliminado o no)

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

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

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

Lo hice 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 enraizado, como los dispositivos virtuales Android, un dispositivo Genymotion o un teléfono / tableta con raíz real, etc.

La forma más rápida de hacer esto durante el desarrollo / prueba sería

Adb uninstall

Ejemplo: $ adb uninstall com.example.myappname

  • ¿Cuándo se aplicarán SharedPreferences () y commit ()?
  • Acceso a SharedPreferences mediante métodos estáticos
  • Cuando Android SharedPreferences commit () devuelve false?
  • Android-maven-plugin: método de despliegue que no elimina SharedPreferences
  • Hacer que una actividad aparezca sólo una vez, cuando se inicia la aplicación
  • ¿Cómo usar las Preferencias Compartidas en MVP sin Dagger y no hacer que Presenter dependa del contexto?
  • Preferencias compartidas entre dos procesos de la misma aplicación
  • Guardar el valor del elemento seleccionado mediante la preferencia compartida
  • Cómo lograr el concepto NSUserDefaults en Android
  • Quiero borrar el valor de la preferencia compartida
  • ¿Qué técnica de almacenamiento de datos Android utilizar?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.