仅限iOS徽章LocalNotification在后台应用程序时不显示

时间:2012-11-18 15:33:07

标签: iphone objective-c ios

编辑:我正在尝试安排仅更新应用程序徽章的本地通知。通知不应显示警告框等。

当我的应用程序开始使用以下代码时,我正在安排本地通知:

NSDate* now = [NSDate date];
NSDate* scheduled = [now dateByAddingTimeInterval:60];
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
if (localNotif == nil)
    return;
localNotif.fireDate = scheduled;
localNotif.timeZone = [NSTimeZone systemTimeZone];
localNotif.applicationIconBadgeNumber = 1;

NSLog(@"local notif at %@", scheduled);

[application scheduleLocalNotification:localNotif];

一旦应用程序启动并在fireDate之前,我点击主页按钮。 我的申请是在后台。 在此状态下,我的应用程序未通过

收到通知
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification

并且应用程序图标未装饰徽章。 我做错了吗?

由于

编辑:发布后我尝试将UIApplicationExitsOnSuspend添加到我的应用Info.plist中。当按下主页按钮时,我的应用程序按预期终止,但在预定日期之后仍未显示徽章。这可能是因为它是仅限徽章的本地通知吗?

编辑:向通知添加警报实际上会显示警报。很奇怪......

localNotif.hasAction = YES;
localNotif.alertAction = @"Hoho";
localNotif.alertBody = @"Hihi";

2 个答案:

答案 0 :(得分:0)

尝试以下代码:

UILocalNotification* notification = [[UILocalNotification alloc] init]; 
notification.fireDate = [NSDate dateWithTimeIntervalSinceNow:seconds]; 
notification.timeZone = [NSTimeZone systemTimeZone];
localNotif.hasAction = YES;
localNotif.alertAction = @"Hoho";
localNotif.alertBody = @"Hihi";
notification.applicationIconBadgeNumber= dayTomorrow;

[[UIApplication sharedApplication] scheduleLocalNotification:notification]; 
[notification release];

答案 1 :(得分:0)

一个好的教程是:

http://www.icodeblog.com/2010/07/29/iphone-programming-tutorial-local-notifications/

并尝试本教程中的示例应用