Обработка UILocalNotification, когда экран заблокирован

Я разрабатываю приложение для iPhone, которое доставляет оповещения в определенное время, используя UILocalNotifications. Нажатие кнопки OK в предупреждении запускает приложение, чтобы оно могло выполнять определенные задачи.

Пока что в большинстве случаев все работает прекрасно: если приложение запущено и срабатывает оповещение, то оно работает нормально, а если приложение не запущено (но телефон включен), то работает так же хорошо.

Однако, если предупреждение срабатывает, когда экран заблокирован, происходит одно из двух.

  1. срабатывает оповещение, и я немедленно «сдвигаю, чтобы разблокировать», затем приложение запускается, как и ожидалось.
  2. предупреждение срабатывает, но я жду, чтобы «сдвинуть, чтобы разблокировать» дольше 20 секунд (время, необходимое экрану для блокировки (затемнения) снова). Когда я, наконец, разблокирую экран, отображается предупреждение, но НЕ запускает приложение.

Я просмотрел документы Apple и этот сайт, но не нашел ответа. Я надеюсь, что мое объяснение имеет смысл. Есть предположения?


person Patrick Fata    schedule 29.11.2010    source источник


Ответы (2)


Я думаю, что такое поведение имеет смысл и его не следует обходить (что я считаю невозможным). Если пользователь нажимает на разблокировку сразу через несколько секунд после уведомления, велика вероятность того, что он нажал на разблокировку только из-за этого уведомления и хочет войти в приложение. Если прошло много времени, уведомление по-прежнему отображается, но вероятность того, что пользователь разблокируется из-за этого уведомления, низка. Скорее всего, он просто хочет написать электронное письмо или сделать что-то совершенно другое. Таким образом, приложение последнего уведомления не должно запускаться.

person Dominik Seibold    schedule 29.11.2010

Спасибо за быстрый и четкий ответ, Доминик. Быстрое продолжение: цель перезапуска приложения — запланировать еще одно оповещение. Если я отправляю сразу несколько оповещений (расписанных на разное время), и ни по одному из них пользователь не разблокирует телефон, все ли они появляются одновременно при первой разблокировке пользователя? (Я бы хотел, чтобы появился только последний)

Еще раз спасибо.

person Patrick Fata    schedule 29.11.2010
comment
Я думаю, что только последний появляется. По крайней мере, я никогда не видел сразу несколько уведомлений на своем iPhone. ;) - person Dominik Seibold; 01.12.2010