用户可以创建不同的警报。因此,当用户何时保持警报并且他可以保持多个警报并且将所有预定警报保持在数据库中并向用户展示以供进一步参考时,取决于用户。以下是我的代码。在重新启动时重置警报
if("CREATEONCE".equals(strparam1))
{
am.set(AlarmManager.RTC_WAKEUP, l2, pi);// l2 is time in millis
}else if("CREATEREPEAT".equals(strparam1))
{
am.setRepeating(AlarmManager.RTC_WAKEUP, l2, 86400000 , pi); //l2 is time in millis
}
所以这是设置报警的代码。用户可以设置多个报警。例如,他一次保留7.00 am
的报警,8.00 am
保留一次,9.00 am dialy
。因此,对于once alarms
代码将转到if块,对于repeat daily
,代码将转到else代码中的其他块。
如果上述3个报警由用户设置为6.00 am
。如果在设置警报后立即重新启动设备,则不会触发整个警报。
所以我读了很多关于这个的帖子,比如post1,post2。他们都只是使用broadcast receiver
来知道设备已重新启动。在广播接收器收到设备重新启动的提示后,是否需要重复上述代码,方法是从sqlite数据库获取信息以使所有警报生效?如果是这样,有人可以帮我从广播接收机那里做到这一点吗?代码片段赞赏
假设如果用户设置50 alarms
,获得所有50个警报的信息并重新设置它们不是一个漫长的过程吗?
我设置所有报警每当用户点击保持提醒每个报警上面的代码。如何跟踪最早的警报。假设如果因为用户将他的设备保持在关闭模式而最早的警报不会触发,那么下一个警报就不会被触发,对吗? – rick 2013-05-06 10:45:18
这是正确的,从广播接收器,继续并设置所有的警报,如我粘贴的代码中所示。 – 2013-05-06 10:46:41
如果是这样的话,当你设置新的警报时,最早的警报实际上是过去的。你可以处理你认为合适的方式。 – 2013-05-06 10:48:57