Android AlarmManager是否处理夏时制更改?

Android AlarmManager是否处理夏时制更改?,android,alarmmanager,Android,Alarmmanager,我正在安卓系统中构建一个闹钟应用程序。AlarmManager是否自动处理夏季和冬季之间的时钟变化,或者我是否需要明确地管理这些变化 编辑:如果设置了重复间隔与时钟交叉的报警,是否需要重新安排该报警?AlarmManager将负责日光节约。它会在每天开始时重置时区信息,并考虑夏令时信息。与公认的答案所说的相反,我在应用程序中看到了不同的行为,我每天都有一个任务在午夜后几分钟运行 夏时制更改后,任务在晚上11:00后几分钟开始运行,导致任务返回错误结果(任务检查当前日期并相应地查询内容) 所以我的

我正在安卓系统中构建一个闹钟应用程序。AlarmManager是否自动处理夏季和冬季之间的时钟变化,或者我是否需要明确地管理这些变化


编辑:如果设置了重复间隔与时钟交叉的报警,是否需要重新安排该报警?

AlarmManager
将负责日光节约。它会在每天开始时重置时区信息,并考虑夏令时信息。

与公认的答案所说的相反,我在应用程序中看到了不同的行为,我每天都有一个任务在午夜后几分钟运行

夏时制更改后,任务在晚上11:00后几分钟开始运行,导致任务返回错误结果(任务检查当前日期并相应地查询内容)

所以我的答案是-是的,你需要明确地管理它

编辑:我们的任务需要在指定的时间每天运行一次。 为了解决这个问题,我们保存应用程序上次运行的时间,并在任务再次运行时检查该时间戳。 如果时间戳不是24小时(由于DST更改,可能是23小时或25小时),我们将中止
AlarmManager
,并安排一个新的时间戳。
所以我们一年最多有两次“错过”跑步(我们可以接受)。

所以我不需要每天重新安排闹钟?(请参阅我在原始问题中的编辑)。它应该可以正常工作,因为AlarmManager会在每天开始时重新计算,同时考虑到白天的节光。它没有-至少在os 4.0.4上没有:我们最近切换了,我注意到警报正好在1小时后触发!!它设定在19:00(晚上7:00)点火,现在在20:00(晚上8:00)点火。所以,它不知道DST。。。我完全同意@marmorWe最近将时间改为夏季(2017年)。我收到我的应用程序报告,调度程序(使用
AlarmManager setRepeating
方法)现在延迟1小时启动。所以,是的,它似乎没有正确处理,它看起来需要手动完成。我的应用程序也失败了,因为夏令时的变化。怎么办?谢谢你,马尔默!我最终解决了这个问题,每次触发一个警报时,我都会对下一个警报进行编程,现在可以正常工作了:)