Android通过AlarmManager和Calendar发出多个警报。DAY_OF_WEEK

时间:2019-01-22 22:20:24

标签: android kotlin calendar alarmmanager

我正在开发警报应用程序,用户可以在一天中的特定时间创建警报,并且可以选择一周中的几天重复警报。

起初,我尝试使用以下代码(但它不准确,有时3-4分钟后会发出警报):

alarmManager.setRepeating(
        AlarmManager.RTC_WAKEUP,
        calendar.timeInMillis,
        AlarmManager.INTERVAL_DAY,
        alarmIntent)

现在我正在使用以下代码(虽然很精确,但是只能运行一次):

val calendar: Calendar = Calendar.getInstance().apply {
    set(Calendar.HOUR_OF_DAY, alarm.hour)
    set(Calendar.MINUTE, alarm.minute)
    set(Calendar.SECOND, 0)
    set(Calendar.MILLISECOND, 0)
}
alarmManager.setExactAndAllowWhileIdle(
        AlarmManager.RTC_WAKEUP,
        calendar.timeInMillis,
        alarmIntent)

现在,我想知道如果将set(Calendar.DAY_OF_WEEK, dayOfWeek)放在上面的代码中(在Calendar.apply内部)会发生什么行为。

用例: 用户选择星期一和星期四上午10点触发警报。

我的问题:是要在接下来的每个星期的每个星期一和星期四上午10点触发闹钟(除非已取消),还是要在当前一周触发闹钟?

P.S。我问是因为,也许有人对此有经验,我不想花2-3周的时间来测试此用例。

0 个答案:

没有答案