2010-08-22 4 views
0

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

Например: я установил оповещение о событии, которое начинается через 3 месяца. Я хочу получить уведомление за 2 дня до начала мероприятия. В iOS 4 есть многозадачность, поэтому мое приложение может работать в фоновом режиме все время.

Но теперь представьте себе, что это хардкорный пользователь iPhone, который все время играет в огромные игры с интенсивной памятью. В какой-то момент iOS может убить мое фоновое приложение. Или пользователь может перезапустить устройство и забыть запустить мое приложение. Так что может случиться так, что предупреждения никогда не произойдет. Плохо.

Есть ли безопасный способ обеспечить, чтобы на пользователя было наброшено запланированное предупреждение, точно так же, как в случае со встроенным приложением будильника или приложением календаря?

ответ

1

Вы хотите использовать UILocalNotification для этого.

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

BTW: многозадачность действительно более «быстрая коммутация», чем фоновые изображения в iOS ... вы не сможете запускать произвольный код в фоновом режиме, и вы должны ожидать, что его убили в любое время.

+0

К сожалению, существует нечетное число 64 запланированных уведомлений за приложение. Это плохо ... – openfrog

+0

Ну ... не совсем. Просто планируйте следующие уведомления при запуске приложения. Я не могу представить, что кто-то «игнорирует» 64 сообщения, но злится на то, что не информируется о 65-м. Это должно произойти только в том случае, если вы используете уведомления как единственный пользовательский интерфейс, который действительно является крайним случаем. – Eiko

2

Я собираюсь вернуть уведомление EventKit - использовать набор событий для планирования записи календаря с предупреждением и вставить там URL-адрес, который откроет ваше приложение.

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

+0

, но приложение может изменить или удалить/воссоздать локальное уведомление, если пользователь хочет его изменить, не так ли? – openfrog

+0

Я думаю, что вы можете, но я еще не использовал API. Но это означало бы, что вы также должны предоставить пользовательский интерфейс управления для пользователя, где, если вы просто бросаете его в обычный календарь, вы можете сказать им, чтобы он менял его. –

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