Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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_Android Alarms - Fatal编程技术网

Android AlarmManager-睡眠时持续重复实时报警

Android AlarmManager-睡眠时持续重复实时报警,android,alarmmanager,android-alarms,Android,Alarmmanager,Android Alarms,我在Nexus4-Android4.3-api_18上工作 当我使用AlarmManager.eassed\u REALTIME计划一个PendingEvent时,当设备处于睡眠模式时,警报会继续调用我的BroadcastReceiver 文档说明,当设备进入睡眠状态时,BroadcastReceiver仅被调用一次,然后当设备唤醒时: 如果在设备处于休眠状态时它熄灭,则直到 下次设备唤醒时 在我的例子中,当设备处于睡眠状态时,BroadcastReceiver会被重复调用 我的代码 alarm

我在Nexus4-Android4.3-api_18上工作

当我使用
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事件是一个好主意。