¿Cuál sería la mejor manera de comprobar si se está ejecutando un servicio de Android? Soy consciente de la API ActivityManager
, pero parece que no se recomienda el uso de la API para los escenarios similares al mío (source). También soy consciente de la posibilidad de usar variables globales/persistentes para mantener el estado de un servicio.Android: compruebe si el servicio se está ejecutando a través de. bindService
He intentado utilizar bindService
con indicadores establecidos a 0
, pero tengo los mismos problemas que la persona en el fuente de enlace (la única excepción fue, yo estaba tratando el bindService
con un servicio local).
la siguiente llamada
getApplicationContext().bindService(new Intent(getApplicationContext(),
MyService.class), mServiceConnection, 0);
siempre devuelve cierto, pero no conectarse. Es este el comportamiento esperado? Me parece que bindService
debe devolver falso si el servicio no se está ejecutando (no lo está, lo he comprobado) o si el indicador BIND_AUTO_CREATE
no está configurado (de nuevo, no lo está).
Digamos que lo haría desea imprimir un mensaje "El servicio se está ejecutando" o "El servicio no se está ejecutando". Es por eso que tengo que obtener la información si el servicio se está ejecutando o no. No puedo hacer eso llamando a startService. – Igor
¿Pero por qué tiene que imprimir este mensaje? Solo hay dos cosas que puede hacer si el servicio no se está ejecutando. Empieza o no. – Falmarri
Porque me gustaría informar al usuario si el servicio se está ejecutando o no. El usuario debe iniciar y detener el servicio de forma manual (mediante la pulsación de un botón).Cuando el usuario cierra la actividad (botón ATRÁS), el servicio debe seguir funcionando. Y la actividad debe saber, cuando el usuario la inicia la próxima vez, que el servicio ya se está ejecutando. – Igor