Когда мое приложение для iOS закрывается, оно регистрирует серию локальных уведомлений, которые обновляют номер значка в определенное время. Локальные уведомления не вызывают всплывающее окно, они просто обновляют значок. На моем старом iPod touch, который не поддерживает многозадачность, это работает отлично. Однако на моих устройствах с поддержкой многозадачности я столкнулся с очень странной ошибкой: когда я «вышел» из приложения (т. е. оно все еще работает в фоновом режиме, но я делаю что-то еще), локальные уведомления не срабатывают. Есть ли причина, по которой локальные уведомления не срабатывают, когда приложение находится в фоновом режиме?
Код для создания локальных уведомлений выполняется в цикле (я создаю их кучу):
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.applicationIconBadgeNumber = totalCount; // a number generated earlier in the code
localNotification.timeZone = [NSTimeZone defaultTimeZone];
localNotification.fireDate = endDate; // a date generated earlier
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
[localNotification release];
А также я создал следующую функцию в своем делегате приложения, которая сообщает мне, сколько уведомлений настроено до того, как приложение перейдет в фоновый режим:
- (void)applicationDidEnterBackground:(UIApplication *)application {
NSLog(@"# Notifications: %d", [[[UIApplication sharedApplication] scheduledLocalNotifications] count]);
}
Приложение постоянно говорит мне, что есть 64 уведомления (количество, которое следует настроить), когда оно переходит в фоновый режим.