Android 什么会导致AlarmManager停止
我的应用程序使用Android 什么会导致AlarmManager停止,android,alarmmanager,Android,Alarmmanager,我的应用程序使用AlarmManager以特定间隔运行服务。某种原因导致AlarmManager停止运行,但我很难调试它可能是什么。我听说如果在服务中抛出异常,这可能会导致AlarmManager停止,但我在LogCat中没有看到任何异常 关于如何调试自动停止的AlarmManager,或者是什么原因导致其停止,有什么建议吗 我听说如果在服务中抛出异常,这可能会导致AlarmManager停止,但我在LogCat中没有看到任何异常 我不知道情况是这样的 关于如何调试自动停止的AlarmManag
AlarmManager
以特定间隔运行服务。某种原因导致AlarmManager
停止运行,但我很难调试它可能是什么。我听说如果在服务中抛出异常
,这可能会导致AlarmManager
停止,但我在LogCat
中没有看到任何异常
关于如何调试自动停止的AlarmManager
,或者是什么原因导致其停止,有什么建议吗
我听说如果在服务中抛出异常,这可能会导致AlarmManager停止,但我在LogCat中没有看到任何异常
我不知道情况是这样的
关于如何调试自动停止的AlarmManager的任何建议
我将使用adb shell dumpsys alarm
来确认警报是否真的消失了
或者是什么导致它停止
据我所知,只有三件事会使警报无法安排:
- 如果您通过
cancel()
- 如果设备重新启动
- 如果有人强制停止你的应用程序
当然,完全卸载也会取消警报计划。在
AndroidManifest
中,我有android.intent.action.BOOT的intent过滤器
,用于BroadcastReceiver
。如果设备重新启动,我还需要什么来重新启动警报吗?@KrisB:嗯,实际上你需要一些代码来重新安排警报,在BroadcastReceiver的onReceive()
中。而且,您需要RECEIVE\u BOOT\u COMPLETED
权限。但是我很困惑,b/c不是每次警报运行时都运行的BroadcastReceiver
,所以警报不是只在重新启动时才重新安排吗?@KrisB:或者使用两个BroadcastReceiver
,或者让BroadcastReceiver
检查传入的Intent
操作,仅在启动事件时安排报警(即,不是您自己的报警广播)。见: