繁体   English   中英

Android将闹钟设置为过去的日期

[英]Android setting alarm to a past date

如果我添加警报但将开始日期设置为过去日期会发生什么?

是立即执行还是放入队列并且从未执行过?

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, startDate, repeatingValue, alarmIntent);

文档中 ,如果startDate时间是过去的,则会立即触发警报。

如果日期是过去那么警报将立即触发。 但是,您可以尝试使用setInexactRepeating而不是setRepeating

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, startDate, setInexactRepeating , alarmIntent);

setInexactRepeating()文档中

安排具有不精确触发时间要求的重复警报; 例如,每小时重复一次的警报,但不一定在每小时的顶部重复。

实际上AlarmManager适用于当前时间。 因此,当您设置过去日期警报时,AlarmManager将执行

public void onReceive(Context context, Intent intent)
{
}

方法。

我认为警报只设置了几个小时(至少通过Android用户界面),而不是特定的一天,这样它将在你设置的确切hour:minute开始。

我可以从我之前使用AlarmManager经验中得出结论。 过去的日期会立即触发警报。

据我所知,当时间设置为过去时间时, AlarmManager.set将立即执行,文档说明了这一点。 AlarmManager.setInexactRepeating缺少此句子,此警报在设置为过去时间时不会触发,它将在下一个时间间隔触发,从给定时间开始。

AlarmManager.set和AlarmManager.setInexactRepeating都调用setImpl,它们作为参数传递了triggertime(在Android 7.1.2源中检查)。 - >两种方法没有区别,如果过去是三卦。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM