2012-02-01 101 views
0

我正在尋找一種方法來乾淨地關閉我的Android服務。只要至少有一項活動在那裏,他們就應該運行。何時以及如何停止服務

當整個應用程序被銷燬時,是否有辦法獲取事件,而不僅僅是單個活動?這樣就可以輕鬆處理關閉服務。但我沒有發現這樣的意圖或事件。

於是我想到了2個possibilites的來處理,但他們似乎有點奇怪對我說:

  1. 寫,其對開啓和關閉的活動的服務。爲了實現這一點,我必須在onPause和onCreate方法中添加activityStarted和activityClosed通知調用。當每個活動暫停或破壞時,我的觀察者服務將停止正在運行的服務並最終停止它自己。

  2. 使用DB在調用onPause或onCreate時寫出活動的計數。在onPause上注意到沒有其他活動的第一個活動啓動服務關閉過程。

你會做什麼?

回答

1

擴展服務類並實現ServiceConnected到您的活動。 然後綁定並計算OnBind()/ Unbind()服務。

+0

+1 - 聽起來不錯,只是在等其他方式,但這是一個解決方案的候選人。 – schlingel 2012-02-01 09:14:25

0

當你「交出」從一個Activity下一個,你需要確保你unbind()Service從「舊」 Activitybind()Service從「新」之一。 This thread on SO涉及類似的事情。請特別注意此答案中的鏈接,該鏈接指向Android文檔的「協調活動」部分。