【问题标题】:Restart locationUpates after pausesLocationUpdatesAutomatically [CLLocationManager]暂停后重新启动 locationUpatesLocationUpdatesAutomatically [CLLocationManager]
【发布时间】:2014-02-15 13:58:14
【问题描述】:

我想知道 iOS 系统是否会在被 pausesLocationUpdatesAutomatically 属性自动暂停后自动重启 CLLocationManager 的 locationUpdates,还是我必须自己处理。

如果是,根据哪些规则,如果不是,如何知道我再次开始移动并应该重新启动 locationUpdates?

【问题讨论】:

    标签: ios iphone gps core-location cllocationmanager


    【解决方案1】:

    如果你设置了

    yourLocationManager.pausesLocationUpdatesAutomatically = YES;
    

    你还应该设置一个值

    yourLocationManager.activityType
    

    “位置管理器使用此属性中的信息作为提示,以确定何时可以自动暂停位置更新。在用户位置不太可能发生变化的情况下,暂停更新使系统有机会节省电量。对于例如,如果活动类型是 CLActivityTypeAutomotiveNavigation 并且最近没有发生位置更改,则可能会关闭无线电,直到再次检测到移动。”

    更新:更改了 Apple 文档 " 发生暂停后,您有责任在确定需要定位服务时再次重新启动它们。核心位置调用 locationManagerDidPauseLocationUpdates(_:) 您的位置经理代表的方法,让您知道发生了暂停。在该方法中,您可以配置一个本地通知,其触发器的类型为 UNLocationNotificationTrigger,并设置为在用户退出当前区域时发出通知。本地通知消息应提示用户再次启动您的应用,以便它可以恢复更新。”

    【讨论】:

    • 嗯,这不完全是我的问题。我已经知道了,但还是谢谢。但是,这是我想知道的:“当不再检测到 activityType 时它们会自动重新启动”。你能告诉我更多吗?你在哪里找到的信息?谢谢
    • 如果应用程序在前台,它肯定会这样做。如果它处于后台模式,它可能永远不会恢复 - 如此处所述:stackoverflow.com/questions/17484352/…
    • 好的。感谢您的链接。似乎有很多关于它的文档。
    • 当不再检测到 activityType 时,我看不到它们自动重启的任何地方。在文档中我可以读到:“发生暂停后,您有责任在确定需要位置服务时再次重新启动它们”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 2014-02-08
    • 1970-01-01
    • 2019-05-11
    • 2020-04-26
    • 1970-01-01
    • 2013-07-06
    相关资源
    最近更新 更多