Я прочитал много статей, однако я не нашел или не пропустил ответ на свой конкретный вопрос, это странная причина, я думаю, что я пытаюсь реализовать обычный случай , Ну, я хочу, чтобы будильник срабатывал каждый день, кроме выходных, поэтому с понедельника по пятницу в определенное время.Android: установить будильник каждый день, кроме выходных дней
В настоящее время я делаю следующий:
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, minute);
Intent intent = creating an Intent here
PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, 0);
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
, насколько я понимаю, следующий код будет срабатывать сигнал тревоги на время я уточнен и делать это каждый день, из-за AlarmManager.INTERVAL_DAY.
Я думал делать дальше, чтобы выполнить свою задачу:
for(int i = 1; i < 6; i++) {
calendar.add(Calendar.DAY_OF_WEEK, i);
}
Но я не уверен, о правильности этой логики. Можете ли вы 1. поправьте меня, если я что-то пропустил 2. предложить некоторые правильное решение или только ваши мысли, чтобы выполнить свою задачу
Update:
Ну, я подумал о следующем: что если я
calendar.set(Calendar.DAY_OF_WEEK, 1);
, а затем
am.setRepeating(AlarmManager.RTC_WAKEUP, date.getTimeInMillis(), AlarmManager.INTERVAL_DAY * 5, pendingIntent);
, поэтому в результате я установлю начальный день на понедельник и повторю его 5 раз, поэтому с понедельника по пятницу, независимо от того, какая текущая дата, когда пользователь устанавливает будильник, это правильно или я пропускаю что-л. Btw, как я могу обновить setRepeating, чтобы он повторял каждую неделю, а не только одну?
Update1:
Я предполагаю, что я понял свою ошибку, используя код выше, я буду делать какие-то странные вещи, поэтому INIT день понедельник, однако интервал повтора один раз в 5 дней, не каждый день с понедельника по пятницу.
Вы можете проверить, является ли день 'SATURDAY' или' SUNDAY' после добавления времени в 'calendar', а затем принять решение не устанавливать будильник. Однако вы не можете использовать 'setRepeating()', поскольку он не может проверить день. –
Привет, спасибо. Ну, я не понимаю, как я могу установить начальный день в понедельник и повторять тревогу каждый день, кроме выходных, независимо от того, какой текущий день, когда пользователь устанавливает будильник. – tratto
Извините, я только что видел ваше редактирование (Update1), и кажется, что это намного проще, чем моя идея. Я думал использовать '.set()' с 'Calendar', установленным в будние дни вручную, но это очень хлопотно.Кстати, я рекомендую вам опубликовать ваше мнение в качестве ответа на этот пост. Это нормально (и рекомендуется!) Для айзера, чтобы ответить на его собственный вопрос здесь :) –