Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 什么会导致AlarmManager停止_Android_Alarmmanager - Fatal编程技术网

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
操作,仅在启动事件时安排报警(即,不是您自己的报警广播)。见: