2012-08-12 100 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

相关问题