2014-03-13 79 views
1

即使活動已關閉,我也有需要運行的android服務!StopService或刪除處理程序回調(電池消耗)

如果屏幕得到OFF服務不需要做任何事情。

如果屏幕獲得ON服務開始工作!

所以我的問題是,它能夠更好刪除所有處理程序回調(保持服務)或停止整個服務,當屏幕獲得上啓動服務一次?

謝謝!

回答

2

原則上,如果不需要,停止所有正在運行的服務總是會更好。

從電池消耗方面 - 運行Service本身不會對電池消耗任何顯著影響,但只要你的服務還活着 - 你的整個過程仍然活着 - 是什麼意思,你的應用程序仍然消耗內存量,並認爲「跑步」。讓我們說,你的應用程序正在運行的事實本身對電池壽命也沒有這樣的影響。

(並有一個大的,但)

什麼的做的事情,並可能對電池壽命的巨大影響是你是您的服務內做什麼。

從你的問題我可以假設你正在執行一些代碼在一定的時間間隔,因此 - 你在每個執行CPU時間,甚至可能更糟 - 執行網絡請求/執行IO文件操作等上。經常執行這樣的操作,你應該儘可能避免它們。

所以,如果您在執行從我所提到的操作的一個或多個 - 這是挑釁會更好,當屏幕關閉時不執行他們,不僅忽略了它們的回調函數...

我建議你也觀看整個視頻 - http://www.youtube.com/watch?v=OUemfrKe65c

它會讓你瞭解全貌......

0

Service的整點在於它可以在後臺運行,即使您的活動未顯示或屏幕關閉時也是如此。如果服務沒有做任何事情(在你的情況下,當屏幕關閉時),而不是消耗任何電池。

希望它有幫助。

1

如果停止你的服務,每一個開/關事件,那麼系統會完成更多的工作畫面上重新啓動服務比如果你保持它的活躍和取消註冊處理程序。系統將需要重新創建服務,如果它有線程或緩存,則重新創建服務等。此外,如果您有前臺服務,則用戶將看到服務圖標不斷出現並消失。

我會保持開始。只要刪除所有處理程序,它不消耗任何資源。

+0

感謝您的回答! – Trxplz0