En android hay alguna manera de preservar SharedPreferences después de una desinstalación

Estoy guardando algunos metadatos de la aplicación en SharedPreferences . Cada vez que desinstale la aplicación y SharedPreferences instalarla, se eliminarán las SharedPreferences .

¿Hay alguna manera de conseguir que se mantenga, de modo que si el usuario hace una desinstalación y reinstalación, pueden recuperar sus datos antiguos?

Debería agregar un BackupAgentHelper a su aplicación. Junto con SharedPreferenceBackupHelper , SharedPreferenceBackupHelper las SharedPreferences a la nube (si el dispositivo lo admite). Cuando se reinstala la aplicación, se restauran los datos.

Ver:

BackupAgentHelper

SharedPreferenceHelper (contiene todo el código que necesita para implementarlo)

General Guía de respaldo

Desde Android 6.0 se ha podido utilizar:

 <application android:allowBackup="true"> 

Al establecerla como verdadera, tus datos (sharedprefs y otros) se guardarán en la nube de Google y se restaurarán la próxima vez que se instale la aplicación. Puedes leer más sobre esto aquí . Cabe señalar que la configuración predeterminada es verdadera desde 6.0.

Estoy seguro de SharedPreferences siempre se elimina junto con la aplicación. En mi opinión, la mejor manera de hacerlo sería escribir un archivo oculto (algo así como ".nameOfFile") en la tarjeta SD o en la memoria interna y tener que contienen las preferencias también.

Debe utilizar SharedPreferences, sin embargo, es el estándar de Android para la gestión de preferencias. Podrías hacerlo para que la primera vez que tu aplicación se cargue, verifica la SDCard para un archivo oculto que habría sido creado la última vez que lo abrió. Si el archivo existe, entonces lea en esas entradas y almacénelas en SharedPreferences, si no lo hace, entonces el usuario lo eliminó o el usuario nunca ha instalado su aplicación antes.

Esta es sólo una manera de hacerlo, y puede que no sea la más eficiente, pero espero que ayude!

Una forma de hacerlo sería almacenar los datos de usuario en un servidor. A continuación, cuando el usuario reinstala la aplicación o instala la aplicación en otro dispositivo, puede "sincronizar" los datos de usuario. Eso sería sólo una pequeña descarga HTTP de los datos, probablemente almacenados en JSON, que luego analizaría y escribiría en SharedPreferences.

Si no desea mantener su propio servidor, podría utilizar un servicio en la nube como Dropbox. Así funciona la aplicación 1Password Reader.

Como edthethird dijo: mejor poner archivos físicos en el dispositivo de almacenamiento externo y leerlos en la instalación. Si el contenido del archivo necesita estar oculto de los usuarios, simplemente realice un proceso de cifrado / descifrado sencillo.

SharedPrefs y DBs se eliminan cuando se desinstala. Usted tendría que escribir fuera de la aplicación (por ejemplo, sd).

Esto es realmente incorporado, sólo tiene que implementar un par de clases para habilitarlo. Los datos serán copiados y enlazados a la cuenta de Google del usuario, por lo que se restaurarán automáticamente si instalan la aplicación en un dispositivo nuevo, vuelven a instalar, etc.

http://developer.android.com/guide/topics/data/backup.html

  • La sub-pantalla de preferencia no se abre cuando se usa support.v7.preference
  • Fragmento colocado encima de NavigationDrawer
  • Android: cómo abrir un cuadro de diálogo ListPreference desde fuera de PreferenceActivity / PreferenceFragment?
  • EditTextPreference hace que Inflate Exception
  • ¿Cuál es el punto de SharedPreferences.getFloat ()
  • ¿Cómo puedo copiar SharedPreferences a una tarjeta SD?
  • Uso del menú relativo a la disposición en el menú de preferencias
  • Iniciar ubicación Configuración intento de preferencias Archivo XML
  • Lista de preferencias sólo muestra el primer elemento
  • Preferencias de número en la actividad de preferencias en Android
  • android: using ListPreference and retrieving key string
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.