Come fermare un servizio di Android solo quando non ci sono altre attività nella mia applicazione in esecuzione?

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

  •  19-09-2019
  •  | 
  •  

Domanda

C'è un modo per testare se ci sono altre attività in mio app ancora vivo? Sto cercando di arrestare un servizio in un metodo OnDestroy, ma solo voler fare questo se non ci sono altre attività da mio app ancora vivo in pila.

Ho la chiamata di arrestare il servizio nel metodo di OnDestroy () della propria attività principale. Questo funziona perfetto, tranne che se un utente avvia la mia app, poi lancia alcune attività nella mia app, poi colpisce nella schermata iniziale e rilancia la mia app, si sovvertono il mio ordine e l'attività principale sarà ora al di sopra di altre attività della mia app. Da questo stato, se hanno colpito il pulsante indietro e 'tornare indietro' del mio schermo casa che attiveranno il metodo OnDestroy () e uccidere il servizio anche se ci sono altre attività aperte in pila. Voglio evitare questo arrestando il servizio solo se sono sicuro che ci sono altre attività della miniera a cielo aperto in pila. Possibile?

È stato utile?

Soluzione

  

Come faccio a lanciare un servizio che   continuare a correre più a lungo uno dei miei   Le attività di app sono ancora sul   impilare, eppure essere fermato quando nessuno   rimangono?

Non utilizzare startService() e stopService(). Invece, utilizzare bindService() e unbindService(), anche se non si ha realmente bisogno la connessione associata. Il bind / disassociazione è contato riferimento. Se si chiama bindService() con la bandiera BIND_AUTO_CREATE, la prima chiamata bindService() inizierà il servizio. Poi, quando tutte le chiamate bindService() hanno avuto chiamate unbindService() corrispondenti, Android si spegne automaticamente il vostro servizio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top