【发布时间】:2013-03-15 19:04:47
【问题描述】:
我正在 Android 中构建一个闹钟应用。 AlarmManager 是否会自动处理夏季和冬季之间的时钟变化,还是我需要明确管理?
编辑:如果在重复间隔与时钟更改相交的位置设置了闹钟,是否需要重新安排闹钟?
【问题讨论】:
标签: android alarmmanager
我正在 Android 中构建一个闹钟应用。 AlarmManager 是否会自动处理夏季和冬季之间的时钟变化,还是我需要明确管理?
编辑:如果在重复间隔与时钟更改相交的位置设置了闹钟,是否需要重新安排闹钟?
【问题讨论】:
标签: android alarmmanager
与公认的答案相反,我在我的应用中看到了不同的行为,我每天午夜后几分钟运行一项任务。
夏令时更改后,任务在晚上 11:00 后开始运行几分钟,导致任务返回错误结果(任务检查当前日期并相应地查询内容)。
所以我的回答是 - 是的,你需要明确地管理它。
编辑:我们的任务需要每天在指定时间运行一次。
为了解决这个问题,我们保存了应用程序上次运行的时间,并在任务再次运行时检查该时间戳。
如果时间戳不是 24 小时(由于 DST 更改可能是 23 小时或 25 小时),我们将中止 AlarmManager 并安排一个新的。
所以我们每年最多有 2 次“错过”跑步(我们可以忍受)。
【讨论】:
AlarmManager 将负责节省日光。它会在每天开始时重置时区信息,并考虑夏令时信息。
【讨论】:
AlarmManager setRepeating 方法)现在启动晚了 1 小时。所以,是的,它似乎没有正确处理,看起来需要手动完成。