2013-05-27 3 views
1

Я должен добавить локальное уведомление на следующие 30 дней (с июня по 01-2013 гг. С 30 июня 2013 г.).Можно ли напомнить дату UILocal Уведомление?

Для примера:

Я должен изменить дату на «Настройки» в июне-15-2013, а затем я должен изменить дату на июнь-05-2013. Местное уведомление не вызывало (с 1 июня по 15 июня). После 16 июня работает нормально.

Мой вопрос

1) Любые ограничения на UILocalNotification на огонь прошлые даты?

2) Возможно ли запустить местное уведомление для прошлых дат?

Пожалуйста, помогите мне. Заранее спасибо.

ответ

2

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

Путь я обойти эту ситуацию, в ответ на следующий вызов обратно в приложения делегат

-(void)applicationSignificantTimeChange:(UIApplication *)application 

Здесь я переиздал все уведомления в соответствии требуется от текущей даты. Это было трюк в моем случае. Это тяжелое решение, так как все уведомления должны быть удалены и переизданы, но я сделал это для меня.

Существует еще один случай, когда вы можете потребовать от повторной синхронизации с уведомлением. Пользователь также мог изменить дату, когда приложение закрыто. Для этого я заставил приложение повторно запрашивать уведомление каждый раз при запуске. Вы можете оптимизировать этот подход, проверяя, произошли ли существенные изменения в дате или нет.

+0

Hi ajonnet. Спасибо за вашу помощь. – Mani

+0

Отличное решение;) – danypata

3

Apple, утверждает, что документы

Если указанное значение равно нулю или является дата в прошлом, уведомление доставляется немедленно.

Так что если вы устанавливаете firedate местного уведомления в прошлом, уведомление будет уволено немедленно.

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

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