Cristian dice aquí : los datos de su aplicación permanecerán cuando el usuario instale las actualizaciones.
Pero debe ser con el mismo package name
para detectar como actualización de App anterior.
EboMike en advertencia al usuario de Android de que la actualización de la aplicación podría provocar la pérdida de datos de la versión anterior de la aplicación. dice:
Francamente, la pérdida de datos debido a una actualización es inaceptable.
Editar :
Normalmente , las SharedPreferences (así como otros datos del usuario) se mantendrán durante el proceso de actualización, pero a veces, debido a algún problema " desconocido ", los datos se pueden perder y supongo que están fuera de su control. Por lo tanto, simplemente puede creer que las SharedPreferences se mantendrán ( consulte aquí ).
Por lo tanto, si desea evitar borrar los datos del usuario en el progreso de la actualización, debe guardar los datos principales en un almacenamiento externo (esto puede ser un medio de almacenamiento extraíble, como una tarjeta SD o un almacenamiento interno, no extraíble) y no privado para su aplicación. O al menos guardarlo para que el usuario haga una copia de seguridad de los datos antes de actualizar. Luego, en la primera ejecución de su aplicación (actualizada), verifique que haya algún archivo de copia de seguridad en el almacenamiento externo o no.
Si desea saber ¿Qué cosas deben o pueden suceder al actualizar una aplicación? , No lo hice ninguna descripción bueno para this.It es complicado y en relación con Android Security
, Application signing
, copy protection
y otra topics.I significa que si cambia el estado de su aplicación en los campos anteriores, provoca resultado diferente.
Por ejemplo, si usted CHANGED COPY PROTECTION FROM ON to OFF OR OFF to ON
, su aplicación se actualizará pero hace que todas sus preferencias compartidas se pierdan, el acceso a archivos sea imposible y ...
Aunque debe tener cuidado con las condiciones que causan su nueva aplicación being considered
como una actualización de la aplicación anterior (consulte Cosas que no pueden cambiar ).
Además, debe tener cuidado con su código, ya que puede eliminar datos de sus bases de datos (consulte la aplicación de actualización con SQLite precargado ).
Pero en última instancia, si tiene cuidado, puede decir:
El proceso de actualización solo reemplaza el archivo apk (y, por lo tanto, lo que contiene, por ejemplo, dibujables, ...) y no altera las bases de datos, las preferencias compartidas y cualquier otro archivo generado en tiempo de ejecución (probablemente en este caso, la nueva aplicación se instala el UID que es igual al UID de la aplicación anterior).
Puede ver estas páginas para obtener más detalles:
¿¡Ayuda!? La actualización de nuestra aplicación en el mercado elimina las Preferencias compartidas guardadas.
La protección de copia de Market rompe totalmente el acceso a los archivos después de la actualización.
¿Alguien puede explicar el proceso de actualización de la aplicación?
Después de depurar durante más de 4 horas, descubrí que estaba guardando un modelo como cadena al serializarlo. Una clase serializable tiene una identificación única por nombre serialVersionUID , que se establece de forma predeterminada en tiempo de ejecución y la identificación se calcula por el nombre de la clase, interfaces y los nombres de las variables también. Descubrí que cambié la clase del modelo, agregué una variable y luego actualicé la aplicación. Dado que la clase ahora se cambió, por lo que se estableció un nuevo serialVersionUID y, por lo tanto, en la actualización, no pudo deserializar la cadena y crear el modelo y estaba dando java.io.InvalidClassException
Establezca explícitamente serialVersionUID para evitar este problema
static final long serialVersionUID = 42L;
fuente
Creo que cuando actualicé mi aplicación la última vez a través de Google Play, las preferencias compartidas no se vieron afectadas.
Los estaba usando para iniciar sesión automáticamente, y después de la actualización lo hizo.
Hace un mes, mi memoria podía volverse borrosa, así que es mejor escuchar las opiniones de otras personas también.
fuente