当我的 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 条通知(应该设置的数量)。