我已经启用了位置更新的后台模式。我创建了一个定时本地通知,希望在它被触发且应用在后台运行时能够停止定位服务。
看起来只有当应用在前台或者在后台并且用户点击通知时,didReceiveLocalNotification
方法才会被调用,那么有没有办法在应用在后台时就能察觉到它被触发了但是用户没有点击?
我已经启用了位置更新的后台模式。我创建了一个定时本地通知,希望在它被触发且应用在后台运行时能够停止定位服务。
看起来只有当应用在前台或者在后台并且用户点击通知时,didReceiveLocalNotification
方法才会被调用,那么有没有办法在应用在后台时就能察觉到它被触发了但是用户没有点击?
我希望这能有所帮助
当系统发送本地通知时,根据应用状态和通知类型,会发生几种不同的情况。如果应用程序没有在前台并且可见,系统会显示警告消息、徽章应用程序,并播放声音-显示通知中指定的内容。如果通知是一个警告,用户点击操作按钮(或者如果设备被锁定,则拖动打开操作滑块),应用程序将被唤醒或启动。(如果用户点击您使用additionalActions属性指定的自定义操作之一,则应用程序将被唤醒或后台启动)。在其application:didFinishLaunchingWithOptions:方法中,应用程序委托可以使用UIApplicationLaunchOptionsLocalNotificationKey键从启动选项字典中获取UILocalNotification对象。委托可以检查通知的属性,并且如果通知在其userInfo字典中包含自定义数据,则可以访问该数据并相应处理它。另一方面,如果本地通知仅徽章应用程序图标,并且用户响应启动应用程序,则调用application:didFinishLaunchingWithOptions:方法,但选项字典中不包括UILocalNotification对象。当用户选择自定义操作时,将调用应用程序委托的application:handleActionWithIdentifier:forLocalNotification:completionHandler:方法来处理操作。
这是来自苹果文档的内容。