Objective c 应用程序处于后台时未显示iOS UILocalNotification
修复了-好的,找到了它,出现了一个错误Objective c 应用程序处于后台时未显示iOS UILocalNotification,objective-c,ios,cocoa-touch,uikit,uilocalnotification,Objective C,Ios,Cocoa Touch,Uikit,Uilocalnotification,修复了-好的,找到了它,出现了一个错误[[UIApplication sharedApplication]cancelAllLocalNotifications]在我没想到的时候被解雇了 这是你的问题 谢谢大家的帮助,很抱歉这只是一个哑巴编码综合症 我构建了本地通知,如下所示: - (void)scheduleNotification { [[UIApplication sharedApplication] cancelAllLocalNotifications]; Class
[[UIApplication sharedApplication]cancelAllLocalNotifications]代码>在我没想到的时候被解雇了
这是你的问题
谢谢大家的帮助,很抱歉这只是一个哑巴编码综合症
我构建了本地通知,如下所示:
- (void)scheduleNotification {
[[UIApplication sharedApplication] cancelAllLocalNotifications];
Class cls = NSClassFromString(@"UILocalNotification");
if (cls != nil) {
UILocalNotification *notif = [[cls alloc] init];
NSLog(@"%@", [NSDate date]);
notif.fireDate = [NSDate dateWithTimeIntervalSinceNow:10];
notif.alertBody = NSLocalizedString(@"Hello.", nil);
[[UIApplication sharedApplication] scheduleLocalNotification:notif];
NSLog(@"Notification scheduled at %@", notif.fireDate);
[notif release];
}
}
正如预期的那样,我的调试日志将在未来10秒内输出正确的fireDate。如果我不离开我的应用程序,我会得到一个成功的应用程序:didReceiveLocalNotification:
回调
这里的问题是,如果我按下按钮安排此通知,然后按下home按钮将其置于后台。如果我这样做,通知永远不会触发,我也永远不会从操作系统获得警报视图
我错过了什么明显的东西吗?我上下查看了这里和苹果的文档,觉得我错过了一些明显的东西
任何帮助都将不胜感激。谢谢。您是否尝试过将代码包装到后台任务中?请参阅Apple文档中的示例:
是否是因为没有将时区设置为[NSTimeZone defaultTimeZone]导致了问题?如果未设置时区,则假定为GMT(默认为零)。好的,找到了它,出现了错误[[UIApplication sharedApplication]cancelAllLocalNotifications];进入后台时被发送。您是否在模拟器或设备上进行测试?我在模拟器中遇到了后台通知问题。这在模拟器和设备上都发生了。我想要通用时间版本(无时区),因为我希望在按下按钮后在指定的时间内发出通知。我已经尝试过,但仍然不起作用。请添加您的解决方案作为答案,这样这个问题就不再列在“未回答问题”列表中,可能会帮助其他人在将来找到问题的解决方案。