2016-06-13 165 views
3

在我服務的onStartCommand()方法中,我啓動了一個長時間運行的線程。當服務停止時,所有線程都會被終止嗎?

該服務開始於我的MainActivityonCreate()

當我的應用程序退出時(主要活動由用戶關閉的時間),我停止服務。但我想確保之前提到的線程已經被殺死,或者我必須在線程之前/之後停止線程。

那麼所有線程在服務中啓動服務停止時會自動終止?

+2

不,他們不會被殺害。如果你想手動殺死它,你必須有一些檢查點。請參閱異步任務。 –

+1

在長時間運行的線程中執行Log.d(),您會發現自己! –

+2

線程是組件獨立的。按組件我的意思是活動,服務,內容提供者和廣播接收者。通過獨立,我的意思是他們沒有響應生命週期回調方法,如onCreate,onDestroy等。 –

回答

0

我剛剛通過在我的服務的onDestroy()中記錄線程狀態來檢查此問題。我的服務停止後線程仍然保持活動狀態。

+0

http://stackoverflow.com/questions/10961714/how-to-properly-stop-the-thread-in-java –

+0

謝謝。但我的線程運行一個Web服務器(Jetty)。我可以通過調用服務器的stop()方法來阻止它。 @GennadiiSaprykin – brk

相關問題