Android - Восстановление AlarmManager

Эстетически я склонен одобрять этот подход.

unsigned int special_events[] = {
    ERROR_01,
    ERROR_07,
    ERROR_0A,
    ERROR_10,
    ERROR_15,
    ERROR_16,
    ERROR_20
 };
 int special_events_length = sizeof (special_events) / sizeof (unsigned int);

 void process_event(unsigned int numError) {
     for (int i = 0; i < special_events_length; i++) {
         if (numError == special_events[i]) {
             fire_special_event();
             break;
          }
     }
  }

Делают данные немного более умными, таким образом, мы можем сделать логику немного более немой.

я понимаю, что это выглядит странным. Вот вдохновение (от того, как я сделал бы это в Python):

special_events = [
    ERROR_01,
    ERROR_07,
    ERROR_0A,
    ERROR_10,
    ERROR_15,
    ERROR_16,
    ERROR_20,
    ]
def process_event(numError):
    if numError in special_events:
         fire_special_event()
7
задан Don Chakkappan 21 May 2015 в 11:06
поделиться

1 ответ

А теперь, если отбросить сарказм, как мне поправиться?

Я слышал, что односолодовый шотландский виски помогает.

Пока что я вижу только предупреждения воскрес только после перезагрузки телефон.

Это возможно только в том случае, если вы подключаете BOOT_COMPLETED Intent Intent и повторно устанавливаете сигналы тревоги.

Убийцы задач очень тщательны, но они не могут остановить BroadcastReceiver от приема системных широковещательных сообщений, например BOOT_COMPLETED . Вы можете найти другую трансляцию, которую вы хотели бы принимать, чтобы помочь восстановить контроль и восстановить свою сигнализацию.

Также что, если предупреждения в порядке - это есть способ обнаружить это и не запускать AlarmManager # setRepeating? Или есть вредно запускать его несколько раз?

Вы можете отменить () существующий сигнал тревоги. Итак, если вас беспокоят возможные дубликаты, отмените () текущий аварийный сигнал (который, будем надеяться, незаметно сработает, если аварийный сигнал не существует), затем установите аварийный сигнал.

5
ответ дан 7 December 2019 в 12:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: