【问题标题】:UILocalNotification when iPhone switched offiPhone关机时的UILocalNotification
【发布时间】:2011-12-20 09:07:33
【问题描述】:

在设备关闭时安排 UILocalNotofication 会发生什么。

例如。我每天下午 3 点安排一次 UILocalNotification。但该设备在下午 3:00 至下午 4:00 期间关闭。我猜以下任何一种情况都会成立。

  • 设备重启后不会触发任何通知。
  • 设备重启时即在下午 4:00 触发通知

我没有设备,无法在模拟器上进行测试。

注意:关闭是指设备已关闭,而不是睡眠/待机模式

【问题讨论】:

    标签: iphone uilocalnotification


    【解决方案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分钟后,我能收到通知吗?目前我没有收到任何通知。你能帮忙吗?并分享你的想法。非常感谢。
      • 这个答案不正确,我测试过,重启时通知仍然存在
      • 如果您阅读了答案,在这种情况下,通知会在设备关闭时触发,因此这是正确的行为。
      猜你喜欢
      • 2014-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多