【问题标题】:ios background location services arrow disappears when not movingios后台定位服务箭头不动时消失
【发布时间】:2013-05-02 08:43:20
【问题描述】:

我构建了这个应用程序,即使在后台运行时也能跟踪用户的位置。我使用 CLLocationManagers 方法

startUpdatingLocation

我将 CLLocationManager 设置为

desiredAccuracy=kCLLocationAccuracyNearestTenMeters
distanceFilter=250

前台和后台一切正常。但是当我长时间(数小时)不移动设备时,我可以看到位置箭头消失了。当我切换回我的应用程序时,我可以看到箭头立即返回并且应用程序没有崩溃。这是我不知道的 LocationManager 的“功能”吗? LocationManager 是否进入某种“待机”状态?这不应该是应用程序不在前台运行的问题,因为我可以带着它旅行一个小时,它给了我一个完美的轨道。

【问题讨论】:

    标签: ios cllocationmanager


    【解决方案1】:

    是的,这是一项功能。正如documentation 中给出的那样,位置管理器对象通过在不需要硬件时关闭硬件来积极管理电源。关闭 GPS 硬件可以显着节省电力。

    【讨论】:

    • 如果位置仅由 wifi/cell 确定,我不希望位置箭头消失。据我了解,箭头不代表 gps,而是代表位置服务(无论是由 gps、cell 或 wifi 还是任何组合完成)。除此之外,一旦我移出 distanceFilter 半径,我希望箭头会再次出现。
    • 我找到了“CLLocationManager”类的属性“pausesLocationUpdatesAutomatically”,当设置为NO时似乎可以解决我的问题。
    • 是的。如果您的应用程序适用于 iOS 6.0 或更高版本,则可以使用该属性。但该属性的默认值设置为 YES 以提高电池寿命。您可以利用 'activityType' 属性来确定何时暂停位置更新。
    猜你喜欢
    • 1970-01-01
    • 2014-08-10
    • 1970-01-01
    • 2012-05-01
    • 2014-03-04
    • 2014-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多