2011-01-26 16 views
9

Me he dado cuenta de que las Preferencias Compartidas de mi aplicación se resetean completamente si la aplicación se cierra forzosamente o el sistema la anula por algún motivo. Obviamente, sí, debería evitar tener un colapso en primer lugar, pero sucede. Si esto sucede, el usuario no debería perder todas sus configuraciones y otros datos almacenados con las Preferencias.Preferencias compartidas se reinician cuando la aplicación se cierra forzadamente o se bloquea

Encontré this thread on Google Groups pero no lo podían resolver.

¿Alguien tiene alguna idea de por qué o cómo sucede esto y si hay una forma de prevenirlo?

Además, fyi lo he visto en un dispositivo 2.1 y 2.2. Va a suceder en cada choque, no solo en algunos de ellos.

Gracias

+1

¿Se compromete después de editar sus preferencias? – Falmarri

+0

Sí. Persisten perfectamente a través de los ciclos de vida normales e incluso cierran la aplicación con un administrador de tareas. Parece que solo se reinicia cuando se produce un bloqueo/cierre forzado. – cottonBallPaws

Respuesta

9

Después de algo de investigación en torno finalmente descubrieron la fuente del problema. A través de un error en mi código, una preferencia de cadena se guardaba con una clave nula. Entonces, después de la falla cuando fue a cargar las Preferencias, había un espacio en blanco en el archivo de preferencias xml que causaba que las preferencias se bloquearan y se restablecieran. Por alguna razón, no obtenía el rastro de pila del bloqueo de preferencia, solo la causa inmediata del bloqueo inicial.

Sólo para añadir algunos detalles más en caso de que alguien tiene un problema similar en el futuro:

El archivo XML que tiene las preferencias permanecieron intactos hasta ya través de la fuerza de cierre botón de prensa. La próxima vez que se accedió a las preferencias compartidas, sin embargo, el archivo xml se borró y se inició de nuevo.

+1

Gracias por el seguimiento. Me ha tocado algo así también. No es fácil de detectar hasta que esto me llevó a buscar una clave nula que de alguna manera dejé atrás. – mmeyer

+0

@littleFluffykitty: ¿los datos de sqlite también se borran al cerrar la fuerza? – Ashwin

+0

Tuve el mismo tipo de problema. Y usé archivos para almacenar datos. No se borrará/eliminará cuando la aplicación falle. Además, cargué el sharedpref en Application onCreate después de leer este archivo. – jrhamza

Cuestiones relacionadas