Я прочитал много статей, однако я не нашел/или просто пропустил ответ на свой конкретный вопрос, это странно, потому что я думаю, что пытаюсь реализовать общий случай. Что я хочу, так это ставить будильник на каждый день, кроме выходных, то есть с понедельника по пятницу в определенное время.
В настоящее время я делаю следующее:
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. предложить какое-то правильное решение или просто ваши мысли для выполнения моей задачи
Обновление:
Ну, я подумал о следующем: что, если бы я
calendar.set(Calendar.DAY_OF_WEEK, 1);
а потом
am.setRepeating(AlarmManager.RTC_WAKEUP, date.getTimeInMillis(), AlarmManager.INTERVAL_DAY * 5, pendingIntent);
поэтому в результате я установлю начальный день на понедельник и повторю его 5 раз, поэтому с понедельника по пятницу, независимо от текущей даты, когда пользователь устанавливает будильник, это правильно или я что-то упускаю? Кстати, как я могу обновить setRepeating, чтобы он повторялся каждую неделю, а не только одну?
Обновление 1:
Думаю, я понял свою ошибку, используя приведенный выше код, я буду делать некоторые странные вещи, поэтому день инициализации - понедельник, однако интервал повторения - один раз в 5 дней, а не каждый день с понедельника по пятницу.
SATURDAY
илиSUNDAY
после добавления времени кcalendar
, а затем принять решение не устанавливать будильник. Однако вы не можете использоватьsetRepeating()
, так как он не может проверить день. - person Andrew T.   schedule 07.11.2013.set()
сCalendar
, установленным на дни недели вручную, но это очень хлопотно. Кстати, я рекомендую вам опубликовать свою находку в качестве ответа на этот пост. Это нормально (и рекомендуется!) для спрашивающего ответить на свой вопрос здесь :) - person Andrew T.   schedule 07.11.2013