Cómo detener un servicio de Android sólo cuando no hay otras actividades en mi aplicación en ejecución?

StackOverflow https://stackoverflow.com/questions/2440548

  •  19-09-2019
  •  | 
  •  

Pregunta

¿Hay alguna manera de verificar si existe cualquier otra actividad en mi aplicación aún está vivo? Estoy buscando para detener un servicio en un método OnDestroy, pero sólo desee hacer esto si no hay otras actividades de mi aplicación siguen vivos en la pila.

Tengo la llamada detener el servicio en el método de la actividad principal OnDestroy (). Esto funciona perfecto, excepto que si un usuario inicia mi aplicación, a continuación, lanza unas cuantas actividades en mi aplicación, luego golpea la pantalla principal y relanza mi aplicación, se subvierten mi pedido y la actividad principal ahora estarán por encima de otras actividades de mi aplicación. A partir de este estado, si se pulsa el botón de atrás y regresar afuera de mi pantalla de inicio que activarán el método OnDestroy () y matar el servicio a pesar de que hay otras actividades abiertas en la pila. Quiero evitar esto, deteniendo el servicio si estoy seguro de que no hay otras actividades de las minas abiertas en la pila. Posible?

¿Fue útil?

Solución

  

¿Cómo puedo poner en marcha un servicio que se   continuará funcionando todo el tiempo que cualquiera de mi   Las actividades de aplicaciones están todavía en el   apilar, sin embargo, ser detenido cuando ninguno   siendo?

No utilice startService() y stopService(). En su lugar, utilice bindService() y unbindService(), incluso si usted realmente no necesita la conexión enlazada. El bind / unbind es referencia contado. Si llama bindService() con la bandera BIND_AUTO_CREATE, la primera llamada bindService() comenzará su servicio. Entonces, cuando todas las llamadas bindService() han tenido que emparejan llamadas unbindService(), Android se apagará automáticamente su servicio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top