Estoy desarrollando una aplicación que verifica varias condiciones durante una llamada entrante. Las partes principales de la aplicación son un BroadcastReceiver que escucha las Intenciones relacionadas con el estado del teléfono y un Servicio local que verifica las condiciones.Android: ¿Es mejor iniciar y detener un servicio cada vez que sea necesario o permitir que un servicio se ejecute y se vincule y desvincula de él?
En este momento el servicio se inicia cada vez que se detecta una llamada entrante y se detiene cuando el estado del teléfono vuelve a estar inactivo.
Ahora me pregunto si este procedimiento es correcto y si es razonable iniciar y detener el servicio relacionado con el estado del teléfono. ¿O sería mejor dejar que el servicio se ejecute independientemente del estado del teléfono y vincularlo/desvincularlo de/a él cuando sea necesario?
¿Hay algún problema de rendimiento en el que tenga que pensar? Quizás es más costoso iniciar/detener un servicio que dejarlo funcionar y comunicarse con él. ¿Existen algunas mejores prácticas con respecto a la implementación de servicios?
También: cuando una "Actividad" se une a un "Servicio", el "Servicio" vive mientras haya vínculos con él. Cuando la última 'Actividad' desenlaza los 'Servicios' finaliza(). – MrSnowflake
Suponiendo que es un patrón de vinculación/desvinculación, que no funciona con 'BroadcastReceiver'. Un 'BroadcastReceiver' necesita usar start/stop - no puede enlazar (y mucho menos desvincular). Por lo tanto, estaba asumiendo que el OP significaba comenzar el servicio y dejar el servicio en funcionamiento. – CommonsWare
En los enlaces provistos, declara "Recomiendo a los desarrolladores de Android que intenten evitar los servicios de larga ejecución siempre que sea posible". Entonces, supongo que hay casos en los que los servicios de larga ejecución son preferibles. Tengo un conector Bluetooth que no quiero cerrar una vez que está abierto (independientemente de si la aplicación principal se está ejecutando o no). Pero la mía es una aplicación tipo kiosco y siempre está encendida y cargando (el consumo de energía no es relevante en este caso). – Logic1