Tengo una aplicación de Android que se vincula a un servicio persistente (una vez que se inició con startService()
).Encuadernar/desvincular de forma limpia a un servicio en una aplicación
El servicio es una parte integral de la aplicación y, por lo tanto, se utiliza en casi todas las actividades. Por lo tanto, quiero vincularme al servicio solo una vez (en lugar de enlazar/desvincular en cada actividad) y mantener el enlace durante el tiempo de vida de mi aplicación.
He extendido desde Application y acepto el servicio en Application#onCreate(). Sin embargo ahora tengo el problema de que no sé cuando existe mi solicitud ya Application#onTerminate() Nunca se llama, ver JavaDoc:
Este método es para su uso en entornos de procesos emulados. Nunca se llamará a en un dispositivo Android de producción, donde los procesos se eliminan simplemente matándolos; ningún código de usuario (incluida esta devolución de llamada) es ejecutado al hacerlo.
Entonces, ¿cómo debo desvincularme limpiamente de un servicio vinculado en la aplicación?
¿Cómo sobrevive su servicio a las rotaciones de pantalla? –
¿Qué quieres decir? Un servicio en Android no tiene una IU, así que sigue funcionando. En este caso, el Servicio se inició previamente con 'context.startService()' y se marca adhesivo para que se ejecute hasta que se detenga manualmente o se detenga. –
Ya veo. Estaba pensando que liberar el enlace podría detener el servicio, pero no en este caso de servicio híbrido. El enlace se libera para evitar una conexión de servicio filtrada. –