2

我似乎找不到一个明确的线程来回答这些问题:

“当应用程序未运行(即不在前台或后台)时,计划的 UILocalNotification 是否会触发”?

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

一些答案表明他们会这样做,因为 UILocalNotifications 由 iOS 操作系统处理。有些似乎暗示它们只会在应用程序在后台或前台运行时触发。如果手机被锁定,我找不到太多关于 UILocalNotifications 是否有效的信息。

谢谢,詹姆斯

4

3 回答 3

6

简单地说
来自苹果文档

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

UILocalNotification 由操作系统处理。一旦您安排好它,os 将为您管理它。应用程序是否正在运行,系统都会发出通知。只需要在application:didReceiveLocalNotification:application:didFinishLaunchingWithOptions:中响应即可(如果由于通知而启动应用的处理)

记住

如果在系统传递通知时应用程序处于最前面且可见,则不会显示警报,不会标记图标,也不会播放声音。但是,如果应用程序委托实现了 application:didReceiveLocalNotification: ,则会调用它。

于 2013-03-13T10:09:25.737 回答
1

是的:

操作系统负责在适当的时间传递通知;应用程序不一定要运行才能发生这种情况。

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

于 2013-03-13T10:08:16.770 回答
0

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

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

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

将会通知。

如果您的手机是锁定的,那么 UILocalNotification 也将起作用,但它会显示没有警报正文。(即没有按钮的警报)。

于 2013-03-13T10:16:37.043 回答