我刚刚完成了本教程:
update-widget-in-onreceive-method
(顺便说一句:您会建议对该代码进行任何改进吗?)

最后有人提到:


  我只是想知道是否有一种方法可以进一步扩展该功能,以便当设备处于睡眠状态(关闭屏幕)时,更新将停止。然后,当设备唤醒时,更新将继续。


所以我的问题是:有没有办法做到这一点?怎么样?
还是警报管理器自动停止? -我不这么认为。

最佳答案

您可以指定在安排AlarmManager时设备是否将唤醒。

从文档引用:


  ELAPSED_REALTIME
  SystemClock.elapsedRealtime()中的警报时间(时间
  自启动以来,包括睡眠)。此警报不会唤醒设备;如果设备在睡眠状态下熄灭,则将在下次设备唤醒时将其交付。
  
  ELAPSED_REALTIME_WAKEUP
  闹钟时间
  SystemClock.elapsedRealtime()(自启动以来的时间,包括睡眠),
  它将在设备关闭时唤醒设备。


AlarmManager.RTCAlarmManager.RTC_WAKEUP也是如此

因此,您可能需要两个AlarmManager.RTCAlarmManager.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/

10-12 06:06