2012-01-03 96 views

回答

5

嘗試從服務中調用stopSelf()documentation表示某些流程可能需要很長時間才能完成,因此您的服務很可能會等待他們停止。你應該仔細研究一下。一旦所有請求都完成,服務會自行停止。

+0

我能阻止它從一個活動? – user1127497 2012-01-03 09:17:44

+1

就像我說的,如果'stopService'沒有幫助,一個過程就會佔用它。 '保護抽象無效onHandleIntent(意向意圖) 自:API級別3 此方法工作線程上調用與處理請求。一次只處理一個Intent,但處理髮生在與其他應用程序邏輯獨立運行的工作線程上。所以,如果這段代碼需要很長時間,它會阻止對同一個IntentService的其他請求,但它不會阻塞其他任何東西。當所有請求都被處理後,IntentService會自行停止,所以你不應該調用stopSelf()。' – 2012-01-03 09:19:11

+2

你的意思是如果我調用stopService,一個intent將被髮送到intentservice。如果intentservice已經在隊列中有多個意圖,那麼在停止意圖處理之前,「stopservice intent」將不會被處理? – user1127497 2012-01-03 09:30:46

5

IntentService是建立在自行停止當最後一個目的是通過onHandleIntent(Intent)處理 - 即你不需要停止它,當它完成它停止它的自我。

1

按照documentation的Android停止服務後,都開始請求被處理,所以你從來沒有打電話給stopSelf()。

1

遲到的回覆,以防有人遇到同樣的問題。如果你打電話<yourContext>.stopService(intent)其中intent相同的意圖對象,你用來啓動服務,那麼它會工作。

1

的IntentService旨在停止本身,只有當所有存在於工作隊列中的請求已按文檔handled.As,IntentService 類「停止所有的服務開始請求被處理後,所以你永遠不會有調用stopSelf()」