Sto utilizzando un IntentService per caricare immagini su un server. Il mio problema è che non so come/quando interrompere il servizio. Quando chiamo stopelf() in onHandleIntent (Intent ..) vengono rimossi tutti gli Intenti che sono in attesa nella coda IntentService. Ma non voglio interrompere il servizio da un'attività perché voglio completare il processo di caricamento anche se la mia applicazione non è in esecuzione.Modo corretto per interrompere IntentService
risposta
mio problema è che non so come/quando per arrestare il servizio.
IntentService
si arresta automaticamente quando onHandleIntent()
estremità, se altri comandi sono stati inviati ad esso mentre onHandleIntent()
correva. Quindi, non si arresta manualmente uno IntentService
.
Quando chiamo stopelf() in onHandleIntent (Intent ..) vengono rimossi tutti gli Intenti che sono in attesa nella coda IntentService.
Ecco perché non lo fai.
Ma non voglio interrompere il servizio da un'attività perché voglio completare il processo di caricamento anche se la mia applicazione non è in esecuzione.
Poi si lascia che la fermata IntentService
stesso.
Un IntentService
si arresta automaticamente quando non ha più Intent
s (processi) da elaborare. Funziona stopSelf(startId)
per ogni Intent
(lavoro). Date un'occhiata alla fonte IntentService
o Extending the Service Class
da qui http://developer.android.com/guide/topics/fundamentals/services.html
Grazie, non ero a conoscenza del fatto che IntentService si arresta quando ha finito .:] – malinjir
Un altro angolo frastagliato nell'SDK Android ... sigh. – markshiz
Ho questo problema qui il supposto essere da 25 secondi a 1min compito non finisce così il mio intentService non finisce - https://stackoverflow.com/questions/39976001/force-stop-a-stuck-intentservice-programmatically – mboy