我在Nexus 4上运行 - Android 4.3 - api_18。
当我使用PendingIntent
安排AlarmManager.ELAPSED_REALTIME
时,当设备处于睡眠模式时,警报会继续调用BroadcastReceiver
。
文档说当设备进入休眠状态时,BroadcastReceiver
只被调用一次,然后当设备唤醒时:
如果设备处于睡眠状态时熄灭,则直到设备才会发送 下次设备唤醒时。
就我而言,当设备处于睡眠状态时,会重复调用BroadcastReceiver
。
我的代码
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME,
SystemClock.elapsedRealtime(),
DELAI_PLANNIF_TICK,
pendingIntent);
答案 0 :(得分:1)
当您关闭屏幕时,Android未处于睡眠模式。它正在那里,这个过程可能需要几秒钟。某些应用可能会获得WakeLock
并在屏幕关闭时继续执行其任务(例如播放音频)。我的猜测是你的设备没有处于睡眠模式,你BroadcastReceiver
的行为是预期的。如果您不使用PowerManager
,那么您不必担心会阻止设备进入睡眠状态。如果您的应用需要在用户不与设备交互时停止执行,则最好处理事件屏幕。