2014-01-14 140 views
0

範圍:嗨,我正在開發一個Android API的服務。我需要這個服務運行的全部時間(設備運行時),所以接收器BOOTAndroid系統更新事件

android.intent.action.BOOT_COMPLETED 

是設置和服務由AlarmManager每10分鐘調度。

問題:我的操作系統得到了一些更新,更新後,它終止了我的服務,從AlarmManager中取消調度服務。而且,只要我不重新啓動我的設備,服務不會啓動/計劃。

問題:接收器是否有任何事件,操作系統重新啓動但設備不是?或更新安裝,操作系統恢復等?

編輯

您好,感謝您的聯繫和諮詢。
如今,我正在使用庫Evernote來安排後臺作業。
參見https://github.com/evernote/android-job
我接受了真相,認爲長壽服務是反模式,而BOOT廣播可能會非常棘手。因此,我使用Evernote來安排簡單的工作,重複「滿足我的需求」。它不錯,按預期工作,設備重啓後恢復&兼容「Android報警規劃」管理。
只是一個偉大的圖書館。

+0

嘗試此鏈接 [http://stackoverflow.com/questions/10428510/how-to-start-launch-application-at-boot-time-android][1] [1]:http://stackoverflow.com/questions/10428510/how-to-start-launch-application-at-boot-time-android – kAnNaN

回答

1

我正在開發一個Android API服務。我需要此服務以運行整個時間(設備運行時)

這通常是Android上的反模式。

是否有任何事件的接收器,操作系統重新啓動,但設備不是?

不在Android SDK中,因爲在標準Android中沒有「OS重啓但設備不是」的概念。當操作系統更新時,整個設備作爲更新過程的一部分重新啓動(至少兩次)。

您的設備製造商必須完成您所描述的行爲。您可能希望聯繫該製造商,看看他們是否有關於您的方案的建議。

請注意,當用戶在設置中的應用程序屏幕上點擊「強制停止」時,這些結果(「它會終止我的服務,從AlarmManager中取消計劃服務」)。即使在重新啓動後,您的代碼也不會再運行,直到用戶從主屏幕啓動應用程序,或者其他顯式調用您的某個組件。

+0

接受爲答案。更新是製造商的事情,所以Android API在這裏沒有幫助。用戶發誓該設備未重新啓動。 – zegee29