Сигналы тревоги Android: может ли приемник тревоги отменить тревогу после повторения X /

Мое приложение для Android позволяет пользователю выбрать элемент и установить на нем будильник. Я пытаюсь реализовать это с помощью повторяющегося будильника, но я не хочу, чтобы будильник повторялся вечно. Я хочу, чтобы он автоматически отменялся после 2 повторений. Например, пользователь выбирает элемент и устанавливает будильник на 30 минут. Тридцать минут спустя будильник срабатывает (уведомление доставлено), но пользователь не предпринял никаких действий, кроме отключения звука будильника. Через пять минут сигнал тревоги повторяется, если пользователь не предпринял никаких действий с выбранным элементом. Еще через пять минут сигнал тревоги повторяется, если пользователь все еще не предпринял никаких действий.

Если дойдет до второго напоминания, независимо от того, предпримет ли пользователь действие или нет, я бы хотел отменить сигнал тревоги.

Я почти уверен, что могу управлять этим вне класса приемника сигналов тревоги, но есть ли способ внутри класса определить, сколько раз был вызван сигнал тревоги для определенного элемента? Мой класс приемника тревог расширяет Service.

Спасибо, -Мар


person Marlonez    schedule 30.12.2014    source источник


Ответы (1)


Будьте проще и используйте SharedPreference для хранения этого счетчика. Увеличивайте значение будильника, а затем сбрасывайте его при повторной установке будильника.

person Donn Felker    schedule 30.12.2014
comment
Донн, мне очень нравится идея использования SharedPreferences. Спасибо за предложение. Насколько я вас понимаю, приемник сигналов тревоги будет использовать запись SharedPrefence в качестве счетчика. У меня еще есть один технический вопрос. Допустим, пользователь выбирает item_AA и устанавливает будильник на 25 минут. Затем через несколько минут пользователь выбирает item_CC и устанавливает будильник на 25 минут. В этом случае, кажется, мне потребуются два счетчика SharedPrefence, один для item_AA и один для item_CC... но в приемнике сигналов тревоги, как я могу определить, на какой счетчик ссылаться? - person Marlonez; 31.12.2014
comment
Правильно, вам понадобится уникальное имя для каждого будильника. Передача этого в PendingIntent может помочь. - person Donn Felker; 31.12.2014