我刚刚完成了本教程:
update-widget-in-onreceive-method
(顺便说一句:您会建议对该代码进行任何改进吗?)
最后有人提到:
我只是想知道是否有一种方法可以进一步扩展该功能,以便当设备处于睡眠状态(关闭屏幕)时,更新将停止。然后,当设备唤醒时,更新将继续。
所以我的问题是:有没有办法做到这一点?怎么样?
还是警报管理器自动停止? -我不这么认为。
最佳答案
您可以指定在安排AlarmManager时设备是否将唤醒。
从文档引用:
ELAPSED_REALTIME
SystemClock.elapsedRealtime()中的警报时间(时间
自启动以来,包括睡眠)。此警报不会唤醒设备;如果设备在睡眠状态下熄灭,则将在下次设备唤醒时将其交付。
ELAPSED_REALTIME_WAKEUP
闹钟时间
SystemClock.elapsedRealtime()(自启动以来的时间,包括睡眠),
它将在设备关闭时唤醒设备。AlarmManager.RTC
和AlarmManager.RTC_WAKEUP
也是如此
因此,您可能需要两个AlarmManager.RTC
或AlarmManager.ELAPSED_REALTIME
之一。这些在设备唤醒时继续,在设备待机时停止。如果在设备处于睡眠状态时触发了此警报,则将在用户完全打开设备时将其传递给您。而且,通常不会自动取消AlarmManagers计划的警报。
可以在this part of the tutorial中找到此处提到的部分,具体如下:
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 20*1000, pendingIntent);
关于android - Android:使用Alarmmanager暂停小部件更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8152231/