application:didReceiveLocalNotification:在后台app时不调用

Rah*_*rma 2 iphone objective-c ios uilocalnotification ios7

当我的应用程序进入后台时,将 自动调用applicationDidEnterBackground,并在此方法中触发本地通知.但didReceiveLocalNotification:方法未被调用

- (void)applicationDidEnterBackground:(UIApplication *)application {

UIApplication *app = [UIApplication sharedApplication];
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
    bgTask = UIBackgroundTaskInvalid;
}];

UILocalNotification* localNotification = [[UILocalNotification alloc] init];
localNotification.timeZone = [NSTimeZone defaultTimeZone];
localNotification.fireDate = [NSDate date];
localNotification.alertBody = textString;
localNotification.alertAction = @"View";
localNotification.soundName = UILocalNotificationDefaultSoundName;
localNotification.applicationIconBadgeNumber =  1;

[[UIApplication sharedApplication] presentLocalNotificationNow:localNotification];
}
Run Code Online (Sandbox Code Playgroud)

Tar*_*riq 5

您对本地通知的期望不正确:

当您的应用程序进入后台时,您会在手机上看到即时通知,但您必须点击该通知才能触发didReceiveLocalNotification委托.

如果您在前台收到本地通知,则会自动触发didReceiveLocalNotification.

以上场景经过测试和验证.

更新:您必须阅读此文档:http: //www.thekspace.com/home/component/content/article/62-uilocalnotification-demystified.html