应用程序转到后台或手机时如何获取位置?

时间:2012-10-08 07:58:48

标签: iphone ios

我正在尝试使用locationManager获取我的位置并将其更新到我的网络服务。

- (void)locationManager:(CLLocationManager *)manager 
didUpdateToLocation:(CLLocation *)newLocation 
fromLocation:(CLLocation *)oldLocation {
    //some code here
}

这是正常的,但如果我的应用程序进入后台或手机屏幕被锁定,则可能会暂停更新位置。我怎么去这个位置?

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

我建议您设置一个处理程序,例如:

TTLocationHandler

为所需的新近度和准确性配置处理程序。为通知“LocationHandlerDidUpdateLocation”设置监听器。将代码上传到接收该通知时调用的方法中。

如果您不需要细粒度细节,我建议您在后台使用significantLocationChange监控的省电选项。在这种情况下,您不需要在info.plist中添加后台模式,也不会浪费资源。该应用程序将被唤醒,您的方法仅在用户的重大移动时调用。处理程序中有可配置的选项,需要在后台和/或前台进行持续监控,并设置新近度和准确度阈值。

有关如何响应并将数据保存到Web或本地的示例,请参阅LMPinTracker类。有关使用的讨论,请参见主题Invoke get current coordinates every few seconds without NSTimer

答案 2 :(得分:0)

将此密钥添加到您的应用程序Plist

Required background modes

将其标记为数组,并在其item0上添加此值

App registers for location updates

该应用程序现在也将在后台获取位置数据。