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.
- Servicio de Android para sockets TCP
- Diálogo de alerta del servicio de Android
- ¿Cómo utilizo Android SpeechRecognizer como servicio?
- Servicio eficiente de fondo para el seguimiento de la ubicación del usuario
- El servicio de inicio de Android nunca empieza
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?
- BindService () devuelve false pero unbindService () necesita ser llamado?
- Android Speech Reconocimiento de voz: Llamada repetida de SpeechRecognizer.startListening () falla en JB 4.1.2
- Android: El botón de superposición onClick nunca se llama
- No se puede iniciar el servicio Intent {cmp = com.marie.mainactivity / .BackgroundService}: no encontrado
- Servicio de Android interactuando con múltiples actividades
- Cómo detener la repetición de servicios de alarma en Android?
- No se pudo encontrar la clase SoapObject
- android onTaskRemoved () no llamado en mi (xiomi)
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.
- Problema con la actividad de resolución de una intención – resolveActivityInfo ()
- Aviso de notificación de brindis con la reciente actualización del dispositivo en Android