2012-08-12 118 views
0

我的應用使用AlarmManager以特定間隔運行Service。有些東西導致AlarmManager停止運行,但我很難調試它可能的結果。我聽說如果在Service中引發異常,這可能會導致AlarmManager停止,但在LogCat中我沒有看到任何異常。什麼會導致AlarmManager停止

有關如何調試AlarmManager自動停止或可能導致停止的任何建議?

回答

1

我聽說如果服務中引發異常,可能導致AlarmManager停止,但我在LogCat中沒有看到任何異常。

我不知道是這樣。

如何調試自動停止

我會使用adb shell dumpsys alarm確認報警真的走了一個AlarmManager任何意見。

或者什麼可能導致它停止?

唯一的三件事情,我知道,這將取消預定的報警是:

  • 如果通過cancel()
  • 做,如果設備重啓
  • 如果有人強制停止您的應用程序

當然,完整的卸載程序也不會安排您的警報。

+0

在AndroidManifest中,我爲'BroadcastReceiver'提供了'android.intent.action.BOOT_COMPLETED'的intent-filter'。如果設備重新啓動,是否還需要重新啓動警報? – 2012-08-12 23:11:48

+0

@KrisB:好吧,實際上你需要一些代碼來重新安排警報,在'BroadcastReceiver'的'onReceive()'中。而且,您需要'RECEIVE_BOOT_COMPLETED'權限。 – CommonsWare 2012-08-12 23:13:51

+0

雖然我很困惑,但每次運行警報時,b/c都不是'BroadcastReceiver'運行的,所以不會重新安排警報一遍又一遍,不僅僅是在重新啓動時? – 2012-08-13 01:27:29

相關問題