ios – 如何知道在应用程序处于后台时是否触发了本地通知?

我启用了后台模式以进行位置更新.我创建了一个计划的本地通知,我希望能够在触发时停止位置服务并且应用程序在后台运行.

看来didReceiveLocalNotification方法只在应用程序处于前台时调用,或者它在后台并且用户点击它,是否有任何方法可以注意到它在应用程序处于后台时被触发,但是用户没有点击它?

最佳答案 我希望这可能有所帮助

当系统发送本地通知时,可能会发生一些事情,具体取决于应用程序状态和通知类型.如果应用程序不在最前面并且可见,则系统会显示警报消息,对应用程序进行标记,并播放声音 – 通知中指定的任何内容.如果通知是警报并且用户点击操作按钮(或者,如果设备被锁定,则拖动打开操作滑块),应用程序被唤醒或启动. (如果用户点击您使用additionalActions属性指定的其中一个自定义操作,则应用程序将被唤醒或启动到后台.)在其应用程序:didFinishLaunchingWithOptions:方法中,应用程序委托可以从启动选项字典中获取UILocalNotification对象使用UIApplicationLaunchOptionsLocalNotificationKey键.委托可以检查通知的属性,如果通知在其userInfo字典中包含自定义数据,则它可以访问该数据并相应地处理它.另一方面,如果本地通知仅标记应用程序图标,并且响应中的用户启动应用程序,则调用应用程序:didFinishLaunchingWithOptions:方法,但选项字典中不包含UILocalNotification对象.当用户选择自定义操作时,将调用app delegate的应用程序:handleActionWithIdentifier:forLocalNotification:completionHandler:方法来处理操作.

这来自Apple文档.

点赞