我已启用后台模式进行位置更新。我创建了一个预定的本地通知,我希望能够在触发时停止位置服务并且应用程序在后台运行。
似乎didReceiveLocalNotification
方法仅在应用程序位于前台时调用,或者它在后台并且用户点击它时,有没有办法注意到它在应用程序处于后台时被触发,但是用户没有点击它?
答案 0 :(得分:1)
我希望这可能会有所帮助
当系统发送本地通知时,可能会发生一些事情,具体取决于应用程序状态和通知类型。如果应用程序不在最前面并且可见,则系统会显示警报消息,对应用程序进行标记,并播放声音 - 通知中指定的任何内容。如果通知是警报并且用户点击操作按钮(或者,如果设备被锁定,则拖动打开操作滑块),应用程序被唤醒或启动。 (如果用户点击您使用additionalActions属性指定的其中一个自定义操作,则应用程序将被唤醒或启动到后台。)在其应用程序:didFinishLaunchingWithOptions:方法中,应用程序委托可以从启动选项字典中获取UILocalNotification对象使用UIApplicationLaunchOptionsLocalNotificationKey键。委托可以检查通知的属性,如果通知在其userInfo字典中包含自定义数据,则它可以访问该数据并相应地处理它。另一方面,如果本地通知仅标记应用程序图标,并且响应中的用户启动应用程序,则调用应用程序:didFinishLaunchingWithOptions:方法,但选项字典中不包含UILocalNotification对象。当用户选择自定义操作时,app delegate的应用程序:handleActionWithIdentifier:forLocalNotification:completionHandler:方法被调用来处理操作。
来自Apple文档。