iPhone关机时的UILocalNotification
Posted
技术标签:
【中文标题】iPhone关机时的UILocalNotification【英文标题】:UILocalNotification when iPhone switched off 【发布时间】:2011-12-20 09:07:33 【问题描述】:在设备关闭时安排 UILocalNotofication 会发生什么。
例如。我每天下午 3 点安排一次 UILocalNotification。但该设备在下午 3:00 至下午 4:00 期间关闭。我猜以下任何一种情况都会成立。
设备重启后不会触发任何通知。 设备重启时即在下午 4:00 触发通知我没有设备,无法在模拟器上进行测试。
注意:关闭是指设备已关闭,而不是睡眠/待机模式
【问题讨论】:
【参考方案1】:关闭和打开设备后将触发本地通知。
我编写了一个小型测试应用程序来验证这种行为:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
[[UIApplication sharedApplication] cancelAllLocalNotifications];
NSDate *nowDate = NSDate.date;
for (int i = 1; i <= 50; i++)
UILocalNotification *n = [[UILocalNotification alloc]init];
n.fireDate = [nowDate dateByAddingTimeInterval:60 * i ];
n.applicationIconBadgeNumber = 0;
n.alertAction = @"Open";
n.alertBody = [NSString stringWithFormat:@"ln %@ %@", @(i), n.fireDate];
[[UIApplication sharedApplication] scheduleLocalNotification:n];
return YES;
【讨论】:
【参考方案2】:当您关闭设备时,通知将不存在,因此当您重新打开设备时,如果不重新创建该通知,将不会发生任何事情。
因此,如果您在下午 3 点安排活动,并且您的设备在下午 2 点 59 分关闭,然后在下午 3 点 59 分重新开启,则通知不会触发,因为它必须重新创建。
【讨论】:
这不正确。本地通知确实会持续重启,它不会丢失,除非它的触发时间是在设备关闭时。 那么,对此有何判决?有没有人有任何引用来支持这两种理论? 嗨,一个简单的问题?假设,我设置了明天上午 11 点的通知。然后关闭应用程序。并去设置日期时间,并更改明天和上午 10:55 的时间。那么,5分钟后,我能收到通知吗?目前我没有收到任何通知。你能帮忙吗?并分享你的想法。非常感谢。 这个答案不正确,我测试过,重启时通知仍然存在 如果您阅读了答案,在这种情况下,通知会在设备关闭时触发,因此这是正确的行为。以上是关于iPhone关机时的UILocalNotification的主要内容,如果未能解决你的问题,请参考以下文章