2012-06-01 2 views
0

Мне нужно установить будильник в суточное время, которое повторяет заданное количество времени.Make AlarmManager Повторяет тревогу в течение определенного времени - Android

Существует

void set(int type, long triggerAtTime, PendingIntent operation) 

Она вызывается за один раз. Я могу проверить значение предпочтения и снова установить его для моего требования.

Я могу использовать это также. При каждом срабатывании триггера тревоги можно проверить значение приоритета и достигнуть предела. Затем можно отменить будильник.

void setRepeating(int type, long triggerAtTime, long interval, PendingIntent operation) 

Я хочу избежать этого материала предпочтений в рамках этой операции.

Есть ли другие способы сделать это?

+0

Существует не какой-либо метод, который непосредственно устанавливает будильник для заданного количества раз. Диспетчер аварийных сигналов предоставляет только три метода, заглядывает в документы. – Hardik4560

ответ

0

Проведите несколько раз, когда вы хотите повторить сигнал тревоги как значение int в комплекте с намерением.

На каждом триггере уменьшить значение на 1.

Если он достигает 0 отменить.

Нет предпочтений.

+0

Интересная идея, но не уверен, насколько она надежна. Если это сработает для вас, примите свой ответ. И отправляйте обновления, если это вызывает проблемы. –

+0

@Javanator В моем случае я планирую службу, поэтому, когда она попадает в метод onStartCommand(), я могу получить доступ к намерению, которое приходит в этом параметре метода, но когда я изменяю это значение в следующий раз, когда он попадает сюда это то же самое, что и исходное значение во время запуска AlarmManager. Можете ли вы объяснить, где вы увеличиваете значение, и где вы извлекли и вернули добавочное значение обратно в намерение? –

+1

@Diode вместо использования метода setRepeating use set AlarmManager. каждый раз нажимайте свежую тревогу для следующего удара. В комплекте вы можете передать любое свежее значение, которое вы хотите – Javanator

0

Запланировать каждый следующий аварийный сигнал предыдущей и отслеживать, сколько раз было выполнено. Как только вы достигнете количества ежедневных сроков выполнения, просто не планируйте следующий сигнал.

+0

> отслеживать ... это то, что я задал в вопросе. – Javanator

+0

Справа. В чем проблема с отслеживанием себя? И нет, нет других путей. –

+0

есть есть. подождите меня, обновите ответ – Javanator

Смежные вопросы