2012-04-20 43 views
18

我正在使用IntentService將圖像上傳到服務器。我的問題是我不知道如何/何時停止服務。當我在onHandleIntent(Intent ..)中調用stopself()時,IntentService隊列中正在等待的所有Intents都被刪除。但是我不想停止某個活動的服務,因爲即使應用程序未運行,我也要完成上載過程。停止IntentService的正確方法

回答

43

Extending the Service Class我的問題是,我不知道如何/何時停止服務。

IntentServiceonHandleIntent()結束,如果沒有更多的命令已被髮送到它,而onHandleIntent()正在運行自動停止本身。因此,您不要自己手動停止IntentService

當我在onHandleIntent(Intent ..)中調用stopself()時,IntentService隊列中正在等待的所有Intents都被刪除。

這就是爲什麼你不這樣做。

但是我不想停止一項活動的服務,因爲即使我的應用程序沒有運行,我也要完成上傳過程。

然後你讓IntentService自行停止。

+0

謝謝,我沒有意識到IntentService在完成時會自行停止。] – malinjir 2012-04-20 17:39:35

+2

Android SDK中又一個鋸齒狀的角落......嘆了口氣。 – markshiz 2015-03-20 13:54:12

+0

我在這裏有這個問題應該是25秒到1分鐘任務不結束,所以我intentService不完成 - https://stackoverflow.com/questions/39976001/force-stop-a-stuck-intentservice-programmatically – mboy 2016-12-08 06:15:41