2013-02-05 24 views
1

我想在後臺線程中執行一些相當短的任務。但是,這些任務非常敏感,必須儘可能可靠。將線程執行綁定到前臺服務

我的第一個想法是使用一個(又短的生活)前景服務。我開始服務,在單獨的線程中完成任務,並在完成時停止它。聽起來很簡單,類似於robospice正在做的事情,但是Service的文檔沒有提及任何有關殺死線程的內容。由於服務本身只是一個對象而不是線程,我想如何「告訴」系統某個線程屬於服務並且不應該被終止?

  • 僅僅在我的服務對象中持有對Thread對象的引用就足夠了嗎?
  • 我應該使用HandlerThread並持有對活套的引用嗎? (Like IntentService)
  • 我是否還應該擴展Thread類並綁定到服務? :)

希望有人能給我一些方向。 謝謝。

+0

使用startForeground指示您的服務進程不應該被終止 – njzk2

+0

@ njzk2 startForeground已被棄用。 – meh

+0

?不,這不對 ? (我的意思是,請閱讀文檔,please?) – njzk2

回答

3

只有整個過程中死亡的線程。 Android不能殺死任何心室線程。 Android可以殺死整個進程和所有線程。所以你不應該讓android殺死你的應用程序,並且你的所有線程都會活着。

如果Android有前景活動或服務或者有足夠的資源保持您的應用程序活着,Android不會終止您的應用程序。

+0

謝謝,那正是我所尋找的信息。 – stoilkov

+0

我的2美分:一個服務應該只被視爲前景,當它調用startforeground – njzk2