Hay un problema: mi actividad principal inicia el servicio y luego se cierra. Cuando la aplicación se inicie la próxima vez, la aplicación debería hacer referencia a este servicio y detenerlo. Pero no sé cómo puedo obtener una referencia a un servicio en ejecución. Por favor, espero que me puedas ayudar. Gracias.¿Cómo hacer referencia al servicio en ejecución?
8
A
Respuesta
0
private boolean isMyServiceRunning() {
ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if ("your.service.classname".equals(service.service.getClassName())) {
return false;
}
}
return true;
}
if(isMyServiceRunning()) {
stopService(new Intent(ServiceTest.this,MailService.class));
}
11
Esta respuesta se basa en el answer by @DawidSajdak. Su código es en su mayoría correcto, pero cambió las declaraciones return
, por lo que da el resultado opuesto. El código correcto debería ser:
private boolean isMyServiceRunning() {
ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if ("your.service.classname".equals(service.service.getClassName())) {
return true; // Package name matches, our service is running
}
}
return false; // No matching package name found => Our service is not running
}
if(isMyServiceRunning()) {
stopService(new Intent(ServiceTest.this,MailService.class));
}
Cuestiones relacionadas
- 1. ¿Cómo hacer referencia al ensamblaje desde GAC?
- 2. Agregue referencia de servicio al servicio ASP.NET Web API
- 3. VB.NET: ¿Cómo hacer referencia al módulo VB.NET?
- 4. vinculando al servicio en ejecución (después del final())/callback Handler
- 5. Referencia Web vs. Servicio Referencia
- 6. Problema al agregar una referencia de servicio al servicio WCF alojado en IIS Express con SSL
- 7. ¿Cómo hacer referencia al tipo DOMWindow en Google Chrome?
- 8. ¿Cómo hacer referencia al atributo de color en drawable?
- 9. Cómo hacer referencia al objeto actual en XAML
- 10. Cómo hacer referencia al objeto de iteración actual en manubrios
- 11. ¿Cómo hacer referencia al directorio fuente en qmake?
- 12. ¿Cómo hacer llamadas al servicio web en Expressjs?
- 13. No se puede hacer referencia al WSDL del servicio web WCF alojado en AppFabric
- 14. Cómo usar ISynchronizeInvoke sin hacer referencia al Formulario
- 15. Error al hacer referencia al AudioToolbox en el Objetivo C
- 16. ¿Cómo usar ndb.KeyProperty cómo hacer referencia al mismo modelo?
- 17. Errores al hacer importaciones de referencia circular
- 18. JSON.NET ¿Cómo hacer referencia?
- 19. Reemplazando una función de JavaScript al hacer referencia al original
- 20. cómo hacer referencia al ensamblaje de múltiples versiones
- 21. ¿Cómo hacer referencia al directorio actual desde .htaccess usando mod_rewrite?
- 22. cómo hacer referencia al objeto que contiene ("este") usando attachEvent
- 23. ¿Cómo hacer referencia al dominio principal sin codificar su nombre?
- 24. Smarty: cómo hacer referencia al índice de matriz asociativa
- 25. ¿Cómo estoy sobrescribiendo accidentalmente al hacer referencia a estos punteros?
- 26. ¿Cómo hacer que la GUI espere al servicio de Windows?
- 27. ¿Cómo hacer referencia al mismo modelo dos veces desde otro?
- 28. hacer auto servicio instalar en Delphi
- 29. Cómo agregar una referencia de servicio web en una DLL
- 30. Cualquier referencia al servicio web de tiempo de Internet gratuito
pero ¿cómo puedo detener el servicio utilizando su ejemplo? – user1166635
@ user1166635 muy simple, mira mi edición. –
Uhm .. eso es bastante superfluo. Simplemente llame a 'stopService' independientemente de si su' Servicio' se está ejecutando o no - no hay daño si no lo está - 'stopService' simplemente devolverá' false'. – Jens