首页 文章

在后台模式下更新位置仅需10分钟

提问于
浏览
3

我正在开发一个iPhone应用程序,即使应用程序在后台,也需要不断更新位置 .

我所做的是:

  • 设置位置更新的后台模式

  • set desiredAccuracy = kCLLocationAccuracyBestForNavigation

  • implement - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations;

  • 调用[locationManager startUpdatingLocation]

当应用程序进入后台时,它将继续更新位置大约仅10分钟 . 然后,更新停止 .

有人知道为什么吗?如何在后台进行长时间的位置更新?

谢谢!

1 回答

  • 4

    来自Apple文档

    您可以从Xcode项目的Capabilities选项卡的Background modes部分启用位置支持 . (您还可以通过在应用程序的Info.plist文件中包含UIBackgroundModes键和位置值来启用此支持 . )启用此模式不会阻止系统挂起应用程序,但它确实告诉系统它应该唤醒应用程序,只要有新的位置数据要传递 . 因此,此密钥有效地允许应用程序在后台运行,以便在发生时处理位置更新 .

    似乎设置后台模式应该足够了 . 我让这个在我正在使用的应用程序中工作,我看到的唯一区别是我将 pausesLocationUpdatesAutomatically 设置为 NO .

相关问题