Я создаю приложение, которое принимает данные от пользователя в виде дней, а затем устанавливаю уведомление для этих дней недели.Предположим, в среду и пятницу каждую неделю в 14:00.Я использовал код.
Calendar setcalendar = Calendar.getInstance();
setcalendar.set(Calendar.HOUR, hour);
setcalendar.set(Calendar.MINUTE, min);
setcalendar.set(Calendar.SECOND, 0);
if (day=="1") {
setcalendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
}
else if (day=="2")
{
setcalendar.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
}
else if(day=="3")
{
setcalendar.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
}
else if(day=="4")
{
setcalendar.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
}
else if(day=="5")
{
setcalendar.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
}
else if(day=="6")
{
setcalendar.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
}
else
{
setcalendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
}
AlarmManager am = (AlarmManager)
context.getSystemService(ALARM_SERVICE);
am.setInexactRepeating(AlarmManager.RTC_WAKEUP,
setcalendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY*7,
pendingIntent);
Я запускаю вышеуказанный код для каждого дня отдельно.Этот код работает для день = понедельник , а затем для день = среда .
. Он устанавливает время и день, а затем в setInexactRepeating
он устанавливает каждый изуведомление должно появляться каждые 7 дней с использованием AlarmManager.INTERVAL_DAY*7
.Когда я тестировал код, он генерирует уведомление и на сегодняшний день, даже если «Сегодня понедельник, а понедельник не выбран пользователем».