2012-04-20 4 views
18

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

43

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.

+0

Grazie, non ero a conoscenza del fatto che IntentService si arresta quando ha finito .:] – malinjir

+2

Un altro angolo frastagliato nell'SDK Android ... sigh. – markshiz

+0

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