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?
- ¿Cómo puedo cambiar el tamaño de un título CheckBox o hacer que envuelva en un xml PreferenceScreen?
- PreferenceDataStore en Android O
- Android cambia el color de fondo para el fragmento de preferencia
- Android: SharedPreference: Los valores predeterminados no se establecen en el inicio
- ¿En qué consiste "android: key" en <PreferenceScreen>?
- RequestWindowFeature (Window.FEATURE_NO_TITLE); Da la excepción
- ¿Cómo obtener resultados de la intención lanzada desde la pantalla de preferencias?
- SwitchPreference y CheckBoxPreference en el código
- ¿Cómo puedo agregar los tonos de llamada personalizados de mi aplicación en la carpeta res / raw a un ringtonepreference
- Preferencias personalizadasCategorías
- Cómo hacer que un cuadro de diálogo de PreferenciaActividad abra una ventana de diálogo para establecer una preferencia personalizada
- ¿Cuál es la diferencia entre TypedArray.getInteger () y TypedArray.getInt ()?
- ¿Cuándo querríamos una preferencia no persistente?
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.
- Android – ¿Cómo obtener el processName o packageName usando PID?
- Volley – solicitud de http en bloqueo