Android AlarmManager-睡眠时持续重复实时报警
我在Nexus4-Android4.3-api_18上工作 当我使用Android AlarmManager-睡眠时持续重复实时报警,android,alarmmanager,android-alarms,Android,Alarmmanager,Android Alarms,我在Nexus4-Android4.3-api_18上工作 当我使用AlarmManager.eassed\u REALTIME计划一个PendingEvent时,当设备处于睡眠模式时,警报会继续调用我的BroadcastReceiver 文档说明,当设备进入睡眠状态时,BroadcastReceiver仅被调用一次,然后当设备唤醒时: 如果在设备处于休眠状态时它熄灭,则直到 下次设备唤醒时 在我的例子中,当设备处于睡眠状态时,BroadcastReceiver会被重复调用 我的代码 alarm
AlarmManager.eassed\u REALTIME
计划一个PendingEvent
时,当设备处于睡眠模式时,警报会继续调用我的BroadcastReceiver
文档说明,当设备进入睡眠状态时,BroadcastReceiver
仅被调用一次,然后当设备唤醒时:
如果在设备处于休眠状态时它熄灭,则直到
下次设备唤醒时
在我的例子中,当设备处于睡眠状态时,BroadcastReceiver
会被重复调用
我的代码
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME,
SystemClock.elapsedRealtime(),
DELAI_PLANNIF_TICK,
pendingIntent);
当你关闭屏幕时,Android不在睡眠模式。这个过程可能需要几秒钟以上的时间。某些应用程序可能会获得
唤醒锁
,并在屏幕关闭时继续执行任务(例如播放音频)。我的猜测是,您的设备没有处于睡眠模式,您的广播接收器的行为与预期一致。如果您不使用PowerManager
,则不必担心设备会进入睡眠状态。当用户不与设备交互时,如果您的应用程序需要停止执行,最好处理事件屏幕。当您关闭屏幕时,Android不处于睡眠模式。这个过程可能需要几秒钟以上的时间。某些应用程序可能会获得唤醒锁
,并在屏幕关闭时继续执行任务(例如播放音频)。我的猜测是,您的设备没有处于睡眠模式,您的广播接收器的行为与预期一致。如果您不使用PowerManager
,则不必担心设备会进入睡眠状态。如果您的应用程序需要在用户未与设备交互时停止执行,最好处理事件屏幕。您如何知道您的设备进入睡眠模式?您好,问得好,我只使用设备上的按钮关闭屏幕。当屏幕关闭,我得到刻度时,我测试:pm.isScreenOn(),结果为false。我假设设备处于睡眠模式?在睡眠模式下,CPU处于低功耗状态,因此不执行代码(可能会被警报吵醒),这通常发生在屏幕关闭几秒钟后。嗨,好的,我会用logcat跟踪这一点,并让您不断更新。您如何知道您的设备进入睡眠模式?嗨,好问题,我只使用设备上的按钮关闭屏幕。当屏幕关闭,我得到刻度时,我测试:pm.isScreenOn(),结果为false。我假设设备处于睡眠模式?在睡眠模式下,CPU处于低功耗状态,因此不执行代码(可能会被警报吵醒),这通常发生在屏幕关闭几秒钟后。嗨,好的,我会用logcat跟踪,我会让你不断更新。嗨,我已经测试了两个小时,我确认在终端进入睡眠状态(并且我已经确认它处于睡眠模式)后,广播接收器会不断被调用。否则,处理screen off事件是一个很好的替代方法。嗨,我已经测试了两个小时,我确认在终端进入睡眠状态(并且我已经确认它处于睡眠模式)后,广播接收器会不断被调用。否则,处理screen off事件是一个好主意。