【问题标题】:Do UILocalNotifications fire when app is not running?应用程序未运行时 UILocalNotification 会触发吗?
【发布时间】:2013-03-13 10:04:27
【问题描述】:

我似乎找不到可以回答这些问题的明确线索:

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

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

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

谢谢,詹姆斯

【问题讨论】:

    标签: ios uilocalnotification background-foreground


    【解决方案1】:

    只需是的
    From apple docs

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

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

    记住

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

    【讨论】:

      【解决方案2】:

      是的:

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

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

      【讨论】:

        【解决方案3】:

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

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

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

        会打电话。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-06-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-08
          • 1970-01-01
          相关资源
          最近更新 更多