2012-03-18 69 views
0

我的應用使用BroadcastReceiver和服務來執行後臺更新。我創建了一個設置,用戶可以切換到啓用/禁用後臺更新,這基本上會啓動/取消包含我的BroadcastReceiver的Intent的AlarmManager。何時檢查啓動時是否禁用更新

我還在AndroidManifest中使用了BOOT_COMPLETED廣播操作的接收器設置。我注意到,如果我重新啓動設備,即使禁用後臺更新,後臺更新也會重新啓動。

我的問題是,我假設我需要檢查某個地方,在啓動時,是否已檢查後臺更新設置。我會在BroacastReceiver還是服務本身執行此操作,或者有另一種方法可以防止後臺更新在啓動時啓動。

謝謝。

回答

1

最好的答案是你使用PackageManagersetComponentEnabledSetting()禁用您BOOT_COMPLETEDBroadcastReceiver當你不想要的更新,使當你這樣做。這樣,當你不需要它時,你的代碼都不會在啓動時運行,加快了用戶的啓動過程並且使用少量的電池。

+0

謝謝,我剛剛意識到我的問題可能是這個問題的重複:http://stackoverflow.com/questions/2782448/android-how-to-start-a-service-at-boot-based-on-用戶設置 – 2012-03-18 15:03:17

+0

@KrisB:特別是,[這個答案](http://stackoverflow.com/a/3465986/115145)在這個問題上是好的。 – CommonsWare 2012-03-18 15:08:02

+0

當然,對這個問題的接受答案似乎有點哈克。 :) – 2012-03-18 15:10:28