我正在创建一个具有工作日选项的小型警报项目。 (我正在使用闹钟管理器)。
警报在给定的时间和日期完美触发,但问题是,如果我将日期或时间更改为给定的警报时间,它也会触发任何先前的警报。
例如
如果闹钟设置为星期三星期三凌晨5点响铃。 - 现在的时间是周日下午6点。
另一个警报设定为星期三星期三下午4点 - 当前时间是星期日下午6点30分。
为了进行测试,我将当天更改为星期二下午6:00 - 两个警报立即逐个触发星期一的时间表。
如何停止此特定警报并在下周一立即触发?我还需要检查日期吗???
让我知道!
答案 0 :(得分:0)
你不能真的。报警管理器将所有内容都置于系统时间之外。如果你手动更改系统时间,它就会像现在和你设置它之间的所有时间一样。
编辑:您可以找到库存警报应用程序的源代码。这是link to one of the relavent objects Alarms。
我没有测试任何以确保它,但是从我可以告诉他们存储事件应该触发的时间,如果它突然发现它是在过去它忽略警报而不是让它触发。要检查的其他一些相关类是SetAlarm和AlarmClock,如果你想按照他们设置的方式并对股票应用程序中的警报做出反应,就可以在grepcode上搜索它们。
但要指出手动更改系统时间仍可用于操作警报仍然很重要。例如,如果你明天晚上10点设置闹钟,那么手动将时间跳到明天晚上9:59。 1分钟后警报会响起。
答案 1 :(得分:0)
将您的闹钟时间与System.currentTimeMillis()
如果您的闹钟时间小于当前时间,则无需设置闹钟