Многочисленные тревоги Android через AlarmManager и Calendar.DAY_OF_WEEK - PullRequest
0 голосов
/ 23 января 2019

Я разрабатываю приложение для будильника, в котором пользователь может создать будильник для определенного времени суток + можно выбрать дни недели для повторения будильника.

Сначала я попытался использовать следующий код (но это было неточно, и сигнал тревоги иногда срабатывал через 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:00.,

Мой вопрос: Будет ли срабатывать будильник каждый понедельник и четверг в 10:00 (если он не отменен) для каждой следующей недели или будет срабатывать будильник на текущую неделю?

PS Я спрашиваю, потому что, может быть, у кого-то есть опыт с этим, и я не хочу тратить 2-3 недели только на тестирование этого варианта использования.

...