I want to set an alarm on a particular day of week like Sunday. I know how to do that.
Code:
if (!repeatDays.equals("")) {
String[] repeatDays = this.repeatDays.split(",");
String[] weekDays = {SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY};
if (intent == null) {
for (int i = 0; i < weekDays.length; i++) {
for (int k = 0; k < 1; k++) {
if (weekDays[i].equals(repeatDays[k])) {
mCalendar.set(Calendar.DAY_OF_WEEK, i + 1);
mCalendar.set(Calendar.MONTH, mMonth);
mCalendar.set(Calendar.YEAR, mYear);
mCalendar.set(Calendar.HOUR_OF_DAY, mHour);
mCalendar.set(Calendar.MINUTE, mMinute);
mCalendar.set(Calendar.SECOND, 0);
new AlarmReceiver().createExactAlarm(getApplicationContext(), mCalendar, reminderId);
}
}
}
}
}
Problem: Suppose If today is Monday, and if I'll set an alarm for all rest of the day, it just works fine, but suppose today is Saturday,and if I set an alarm for any other previous days, like Monday to Friday, Alarm manager understands that it is a past day, so it triggers the alarm immediately. But what I want is if I even select past days, it should calculate as that day of the next upcoming week. This is my requirement.
Note: I set day of week based on current system date and from that I got mDate, year & month, and that I pass in calender object:
mDate = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(new Date());