2013-09-23 84 views
-1

我一直在檢查谷歌的文檔有些日子,但我不知道我該怎麼做。我應該爲連續後臺任務實施哪種服務?

在我頭上的想法是創建一個服務,它運行在後臺(永遠),即使設備重新啓動等(例如,WhatsApp)。這項服務應該每週三(例如)每30分鐘通過互聯網進行。

但是,我不知道如果我要創建一個經典服務,一個具有廣播接收器等

我想了解哪些地方需要集中我搜索了一些解釋。 我應該使用哪種服務來執行永不結束的任務?

+0

你試過了什麼? – Snicolas

+0

我還沒有嘗試過任何東西。我問什麼應該搜索以完成我的要求。我不在尋找代碼幫助,只是關於我應該搜索什麼的一些技巧,因爲我發現了許多關於2-3種服務的信息,但是我無法滿足我的要求。 – Reinherd

+0

請閱讀Android操作系統,在任何時候都應該避免在後臺運行應用程序! – RvdK

回答

4

沒有人想要一個在後臺永遠運行的應用程序。你想要一個定期啓動的應用程序(在後臺),做它的事情,並再次睡覺。

此外,在android中永遠不會運行'永遠'。生命週期由Android操作系統處理,這意味着如果它需要資源,它可以殺死你的應用程序。

所以,你可以兩件事情:

  • BroadcastReceiver + Service:在BR監聽到Android引導的Intent,然後開始你的服務,這可能會無限期地運行(使用startService)。
  • AlarmManager + BroadcastReceiver(+ Service):以指定的時間間隔創建報警,讓您的BR啓動。無線電通信局然後可以啓動Service,這是一項繁重的工作。服務完成後,它應該自殺!

IntentService不能使用,因爲它會殺死自己時,有沒有更多的任務 BroadcastReceived不能單獨使用,因爲它只能活幾秒鐘(10秒)

TL;博士

不要製作永久運行的服務。創建一個Service完成任務並在完成時自殺。然後定期啓動此Service

+0

我認爲第二種選擇對我來說是最好的。謝謝。 – Reinherd