Я видел много учебников для создания AlarmManager и создания уведомления в определенную дату, но мне было интересно, как это сделать за X дней до этого.Android - как настроить будильник за X дней до определенной даты
Например, если у меня есть событие на 8 января 2014 года, и я хочу, чтобы установить его на неделю раньше до 1 января 2014 года, я бы просто установить будильник, как это:
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.MONTH, 1);
calendar.set(Calendar.YEAR, 2013);
calendar.set(Calendar.DAY_OF_MONTH, Day-7);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.AM_PM,Calendar.AM);
Intent myIntent = new Intent(MainActivity.this, MyReceiver.class);
pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, myIntent, 0);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
Однако то, что если событие было 4 января 2014 года, то я хотел бы установить дату до 28 декабря 2013 года. Есть ли функция, которая может это сделать? Или мне нужно написать много дел?
разность b/w сегодня и X дней, преобразуйте разницу в milisecond и добавьте значение в calendar.getTimeInMillis() + difference_days_into_milisecond –
1 - ПОЧЕМУ ??? 2 - Вы не можете: если текущее время после аварийного времени, будильник будет срабатывать НЕМЕДЛЕННО. –
1 - Потому что я хочу получить уведомление о задаче до его конкретной даты. 2 - Кроме того, это была гипотетическая дата. Не настоящая дата. Я приводил пример. – user2525236