计算3天的警报管理器触发器

时间:2011-06-23 17:06:12

标签: android alarmmanager

好吧所以我有一个警报管理器,我必须每三天关闭一次,当它关闭时,我将当前的系统时间写入共享首选项,这样如果手机关闭,我就会在最后一次被解雇时。< / p>

我的问题是如何计算手机关机后最后一次解雇的3天,因为我只能在共享首选项被解雇时写入?

我在想这样的事情

long refresh = lastTime + (360000*24)*3;

其中lastTime是最后一次被解雇的时间,但是如果手机重新启动之间那么又不会再重启3天了,或者我认为这是错误的?

1 个答案:

答案 0 :(得分:0)

您缺少零(一天有86400000毫秒),但除此之外您的方法看起来很好(假设lastTime只是来自System.currentTimeMillis()的存储值)。 AlarmManager使用绝对时间作为触发时间。

如果手机已关闭超过3天,那么当您恢复闹钟时,手机将会过期并立即开机。需要注意的一件事是,如果你以这种方式恢复重复警报并且自上次触发后已经过了5天,那么当你使用过去的日期恢复它时它会立即触发(过期的第3天警报)和再过一天后再次开火(第6天报警)。你可能想调整一下。