AlarmManager повтор каждый день в опредленное время

Рейтинг: 2Ответов: 1Опубликовано: 28.01.2015

Что нужно передать в alarmManager, чтобы он, к примеру, выполнялся каждый день в 19:00?

    am.setRepeating(AlarmManager.RTC, SystemClock.elapsedRealtime(), AlarmManager.INTERVAL_DAY, pendingIntent);

Ответы

▲ 3Принят

AlarmManager.setRepeating(<Флаг>, <Когда выполнить?>, <Через какой промежуток?>, <Что выполнить?>);

Флаг - ELAPSED_REALTIME, ELAPSED_REALTIME_WAKEUP, RTC, или RTC_WAKEUP

Флаги:
ELAPSED_REALTIME - действие выполниться только при следующем пробуждении устройства после времени срабатывания, или во время срабатывания, если устройство в это время не спало. Отсчет времени для <Когда выполнить?> ведется с момента включения устройства (SystemClock.elapsedRealtime())

ELAPSED_REALTIME_WAKEUP - точно, как ELAPSED_REALTIME, только устройство будет пробуждено в момент срабатывания, и нужное действие сработает сразу.

RTC - точно, как ELAPSED_REALTIME, только отсчет ведется с "начала времен"(System.currentTimeMillis())

RTC_WAKEUP - точно, как RTC, только устройство будет пробуждено в момент срабатывания, и нужное действие сработает сразу.

<Когда выполнить?> - в милимекундах в зависимости от <Флаг>

<Через какой промежуток?> - в милимекундах

<Что выполнить?> - PendingIntent, который надо выполнить