即使在android完成时间后也会触发警报

时间:2012-11-22 02:20:57

标签: android alarm

我正在创建一个具有工作日选项的小型警报项目。 (我正在使用闹钟管理器)。

警报在给定的时间和日期完美触发,但问题是,如果我将日期或时间更改为给定的警报时间,它也会触发任何先前的警报。

例如

如果闹钟设置为星期三星期三凌晨5点响铃。 - 现在的时间是周日下午6点。

另一个警报设定为星期三星期三下午4点 - 当前时间是星期日下午6点30分。

为了进行测试,我将当天更改为星期二下午6:00 - 两个警报立即逐个触发星期一的时间表。

如何停止此特定警报并在下周一立即触发?我还需要检查日期吗???

让我知道!

2 个答案:

答案 0 :(得分:0)

你不能真的。报警管理器将所有内容都置于系统时间之外。如果你手动更改系统时间,它就会像现在和你设置它之间的所有时间一样。

编辑:您可以找到库存警报应用程序的源代码。这是link to one of the relavent objects Alarms

我没有测试任何以确保它,但是从我可以告诉他们存储事件应该触发的时间,如果它突然发现它是在过去它忽略警报而不是让它触发。要检查的其他一些相关类是SetAlarm和AlarmClock,如果你想按照他们设置的方式并对股票应用程序中的警报做出反应,就可以在grepcode上搜索它们。

但要指出手动更改系统时间仍可用于操作警报仍然很重要。例如,如果你明天晚上10点设置闹钟,那么手动将时间跳到明天晚上9:59。 1分钟后警报会响起。

答案 1 :(得分:0)

将您的闹钟时间与System.currentTimeMillis()

进行比较

如果您的闹钟时间小于当前时间,则无需设置闹钟