2014-09-27 73 views
0

我正在開發一個應用程序,它使用綁定服務從服務器查詢信息並在滿足條件時提供通知。目前,用戶必須從主屏幕執行應用程序才能開始接收更新。但是,例如,Facebook Messenger和Llama等應用程序從手機在後臺啓動的那一刻開始運行。我如何爲我的長期應用實現類似的功能?此外,即使當我的應用程序從主屏幕運行時,它仍然會在後臺從我認爲是退出應用程序的額外資源的系統中退出。即使我的應用程序是在重新開始時恢復服務的,它似乎從不會在重新啓動後重新啓動(通常在3到4小時的後臺活動之後)。Android Messenger應用程序如Facebook Messenger和Llama如何在開機時從後臺繼續運行?

感謝您的幫助。

回答

3

您可以註冊一個BroadcastReceiver作爲ACTION_BOOT_COMPLETED Intent以檢測設備何時被引導。這需要RECEIVE_BOOT_COMPLETED權限。

您可以使用已啓動的sticky服務來代替使用綁定服務。但是,根據您想要做什麼,您可能需要檢查AlarmManager是否更適合您的需求(可能與IntentService結合使用,請參閱cwac-wakeful)。

+0

是的,@cygery完全正確:你不能。無論如何,永遠運行可能不是你想要的。你想要週期性地做某事或迴應環境中的一些變化(入境癢癢,地點變化,不管)或類似的事情。你*可以*做任何這些事情。 – 2014-09-27 21:57:10

+0

我正在使用AlarmManager「啓動」的綁定服務。有更可靠的東西嗎?這也是每120秒發生一次並輪詢服務器的事情。 – Gbps 2014-09-27 22:03:57

相關問題