Mataron el servicio de Android y las variables estáticas

Uso de Android 2.1+. Tengo un servicio que se mata de vez en cuando por el sistema operativo (debido a la presión de memoria supongo).

Este servicio mantiene algunos estados utilizando campos de clases estáticos. Estoy esperando que los campos estáticos para mantener sus valores a pesar de que el servicio es asesinado y reiniciado por el sistema operativo.

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 sucede? ¿Debo usar otra forma de mantener un estado persistente a pesar de matar / reiniciar?

Sí, esto es lo que sucede cuando su servicio es asesinado. El programa se quita de memoria y cuando se vuelve a cargar en memoria, se asumen todos los valores predeterminados de las variables estáticas. Dicho de otra manera, el código de byte para su programa no puede cambiar de ejecución a ejecución.

Generalmente se considera malo usar variables estáticas para mantener el estado. Trate de almacenarlos en el almacenamiento presistente, como una base de datos sqlite.

  • ¿Por qué no comienza este servicio simple?
  • El servicio de Android se detiene al salir de la aplicación
  • GetApplicationContext () devuelve null en un servicio
  • BroadcastReceiver vs Servicio
  • SetInterval equivalente en Android / Java?
  • Android: comprueba si mi servicio se está ejecutando en segundo plano
  • Cómo tener varias instancias de Servicio en Android
  • servicio androide para realizar un seguimiento de las llamadas salientes y SMS en segundo plano
  • Cómo iniciar la aplicación Android de sólo servicio
  • Intentando iniciar un servicio de inicio en Android
  • Android Shared Service?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.