Uso de Android 2.1+. Tengo un servicio que es asesinado de vez en cuando por el sistema operativo (debido a la presión de la memoria, supongo).Servicio Android anulado y variables estáticas
Este servicio mantiene algunos estados utilizando campos de clases de miembros estáticos. Estoy esperando que los campos estáticos mantengan sus valores a pesar de que el sistema operativo haya cancelado y reiniciado el servicio.
Pero parece que no sucede así. Después de un reinicio, las variables estáticas se restablecen al valor predeterminado. ¿Es lo que se supone que va a pasar? ¿Debería usar otra forma de mantener un estado persistente a pesar de matar/reiniciar?
También especificaría que, dado que los campos estáticos se restablecen, significa que el sistema operativo mata todo el proceso de la aplicación Java. Y sí, esto sucede de vez en cuando, consulte esta publicación - http://stackoverflow.com/questions/708012/android-how-to-declare-global-variables/4642069#4642069 –
¿Realmente Android no proporciona medios para mantener la persistencia? estado que escribirlo para flashear todo el tiempo? (por ejemplo, no se garantiza que se llame a onDestroy !!!?) Mi servicio cambia de estado MUCHO y esto aumentaría el uso de la batería y acelerará el desgaste del flash si tengo que tocar el flash cada vez que cambia el estado. – Michael
@Michael De la [documentación del método onDestroy] (https://developer.android.com/reference/android/app/Activity.html#onDestroy()): Nota: no cuente con este método que se llama como un lugar para guardar datos! Por ejemplo, si una actividad está editando datos en un proveedor de contenido, esas ediciones se deben confirmar en onPause() o onSaveInstanceState (Bundle), no aquí. –