2016-06-28 97 views
0

我使用服務來連續同步顯示在活動上的信息。該服務運行無限循環(true),其中信息每10秒更新一次。在一些設備中,服務在執行一段時間後停止。我如何保持intentService的任務運行?即使用戶最小化應用程序,它也必須運行。如何創建永無止境的IntentService?

+0

對不起,你問題的主題與你的問題相反。或在之前提出:「如何」和最後一個問號。 – statosdotcom

+1

「我...不斷同步信息......每10秒鐘」 - 如果通過「同步」,你的意思是通過互聯網與某個服務器同步,你爲什麼認爲這是一個好主意? Android將竭盡全力阻止應用程序執行此類操作,因爲用戶重視電池壽命。 – CommonsWare

回答

3

你不應該這樣做(你甚至不能從android 6.0:doze)。考慮使用cloud messaging來通知您的應用程序服務器上發生了某些變化。

0

A Service非常適合託管長時間運行的進程,這些進程超過任何一項活動。如果您只是顯示數據,而不是保存數據或進行某種後臺處理,則根本沒有理由使用Service。只需在該活動中使用Handler#postDelayed(...),並確保在暫停時移除任務。

每十秒輪詢一次可能過多。事實上,除非您希望數據的變化頻率與您正在進行的輪詢相同,否則輪詢可能效率不高。