Когда мое приложение 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 уведомления (число, которое необходимо настроить), когда оно входит в фон.