2011-05-21 72 views
2

我有一個android ServiceMyService線程售後服務被破壞

我有一個Activity有兩個按鈕(啓動服務/停止服務)。

當用戶點擊按鈕「啓動服務」,MyService使用

startService(new Intent(this, MyService.class)); 

當用戶點擊按鈕「一站式服務」開始,MyService使用

stopService(new Intent(this, MyService.class)); 

停在MyService創建執行一些長時間運行的任務的ThreadT

我的問題是:如果Service被銷燬,即使它仍在運行,T也被銷燬?

+0

當您編寫示例應用程序來執行此操作時,您會看到什麼情況? – 2011-05-21 04:01:04

+0

在服務被銷燬後,我的應用程序中線程仍在運行 – Enrique 2011-05-21 04:47:05

回答

2

不,結束您明確創建的線程不是Android框架的責任。您需要延長onDestroy()。以下是此方法的javadoc:

由系統調用以通知服務它已不再使用並正在被刪除。這個服務應該清理它所擁有的資源(線程,註冊接收者等)。返回後,將不會有更多的調用這個服務對象,它實際上已經死了。不要直接調用這個方法。

我還建議你讓你的線程使用Interrupts,以便你可以優雅地結束它。