Si alguna vez habéis intentado depurar servicios en Android Studio, veréis que los breakpoints que estáis poniendo, solo funcionan en la aplicación principal, pero no en el servicio deseado.
De hecho, en la ventana Android Monitor, ni siquiera puedes ver los mensajes de log generados por el servicio, solo los de la aplicación principal.
Para ello:
- Ejecutamos la aplicación en modo depuración y ejecutamos la función que ejecuta el servicio apara asegurarnos que está corriendo. Si sabemos que ya está corriendo podemos ir directamente al siguiente punto.
- Desde el menú superior, veremos que junto a los iconos de Run y Debug hay un icono denominado Attach debugger -también podemos hacerlo desde el menú Run > Attach debugger to Android process-
- Si lo pulsamos aparecerá una lista de los servicios asociados a nuestra aplicación. Si marcamos la opción Show all processes veremos todas las aplicaciones/servicios que actualmente están corriendo en nuestro dispositivo.
- Tras pulsar OK, tendremos nuestro depurador enlazado con el servicio y ahora sí funcionarán los breakpoints que hubiéramos habilitado.
- Finalmente, si queremos ver los mensajes de log que el servicio esté generando, en la ventana Android Monitor deberemos seleccionar el nombre del servicio del desplegable: