我正在开发警报应用程序,用户可以在一天中的特定时间创建警报,并且可以选择一周中的几天重复警报。
起初,我尝试使用以下代码(但它不准确,有时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周的时间来测试此用例。