应用程序未运行时,本地通知是否会触发?

时间:2013-03-13 10:04:28

标签: ios uilocalnotification background-foreground

我似乎无法找到回答这些问题的明确主题:

“如果应用未运行(即不在前台或后台),是否会安排预定的UILocalNotification”?

“当应用程序未运行时(即不在前台或后台)并且手机处于锁定/睡眠模式时,是否会触发UILocalNotifications?”

有些答案表明他们会像UILocalNotifications一样由iOS操作系统处理。有些人似乎暗示只有在应用程序在后台或前台运行时才会触发。如果电话被锁定,我无法找到有关UILocalNotifications是否有效的信息。

谢谢,詹姆斯

3 个答案:

答案 0 :(得分:6)

只需
From apple docs

  

当系统发送本地通知时,可能会发生一些事情,具体取决于应用程序状态和通知类型。如果应用程序不是最前面且可见,则系统会显示警报消息,对应用程序进行标记,并播放声音 - 通知中指定的任何内容。如果通知是警报,并且用户点击操作按钮(或者,如果设备被锁定,则拖动操作滑块),应用程序将启动。

UILocalNotification由操作系统处理。一旦你安排它,操作系统将为你管理它。无论应用程序是否正在运行,系统都会发出通知。您只需要在应用程序:didReceiveLocalNotification:应用程序:didFinishLaunchingWithOptions:(以处理由于通知启动应用程序)来处理它

记得

  

如果应用程序在系统发送通知时最重要且可见,则不会显示警报,没有图标标记,也不会播放声音。但是,如果应用程序委托实现它,则调用application:didReceiveLocalNotification :.

答案 1 :(得分:1)

是:

  

操作系统负责在适当的时间发送通知;该应用程序不必为此而运行。

来源:http://developer.apple.com/library/ios/#documentation/iphone/Reference/UILocalNotification_Class/Reference/Reference.html

答案 2 :(得分:0)

是。无论您的应用是在后台运行还是在前台运行,本地通知都会触发。

如果你的应用程序在前台运行,那么

- (void)application:(UIApplication*)application didReceiveLocalNotification:(UILocalNotification*)notification

将致电。

如果您的手机处于锁定状态,那么UILocalNotification也会正常工作,但它会显示没有警报正文。(即不带按钮的警报)。