【问题标题】:Repeating alarm on specified days在指定日期重复警报
【发布时间】:2011-12-21 14:31:25
【问题描述】:

假设我的网站每周二、周四和周六更新。我不知道这些更新的确切时间,所以我想每小时进行一次轮询以检查是否有新内容可用。最好的方法是什么?我只能想到两件事:

  • 始终每隔 1 小时重复一次闹钟,检查当天是周二、周四还是周六,如果是,则从服务器进行轮询。
  • 在 BOOT_COMPLETED 为 AlarmManager.INTERVAL_DAY 设置重复警报,其中 HOUR_OF_DAY 和 MINUTE 设置为零。每次警报响起时,检查是周二、周四还是周六。如果为 true,则设置另一个以 1 小时为间隔的重复闹钟。

还有其他可能更优雅的方式吗?

【问题讨论】:

    标签: android alarmmanager


    【解决方案1】:

    使用接收器完成开机,并每次设置下一个相关日期的凌晨 12:00 的闹钟。
    使用日历获取天数。
    然后在您启动的服务中每小时设置一个新警报,直到晚上 11:59。晚上 11:59 的闹钟会设置下一个适当日期的闹钟。

    我建议使用带有待定 Intent 的 BroadcastReceiver 用于警报,如果时间合适,它将启动服务。

    请记住,使用 partial_wakelock 可能会很好

    【讨论】: