【发布时间】:2015-12-13 06:35:10
【问题描述】:
我正在开发一个 iPhone 应用,即使应用在后台,它也需要不断更新位置。
我做的是:
- 为位置更新设置后台模式
- 设置desiredAccuracy = kCLLocationAccuracyBestForNavigation
- 实现 -(void) locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations;
- 调用 [locationManager startUpdatingLocation]
当应用程序进入后台时,它将保持更新位置大约只有 10 分钟。然后,更新停止。
有人知道为什么吗? 如何在后台进行长时间的位置更新?
谢谢!
【问题讨论】:
-
我认为设备会在 10 分钟后被锁定(进入睡眠状态)。您只能在设备未锁定时在后台运行。
-
不,10 分钟是应用程序在暂停之前可以继续在后台运行的限制。
-
所以如果设备处于睡眠模式,它仍然可以在后台工作吗?
-
我有一个应用可以在后台全天每5分钟保存一次位置,所以我认为这里没有超时问题。可能只是没有为后台位置更新调用正确的方法。您可能需要考虑使用这些方法在后台保存位置:allowDeferredLocationUpdatesUntilTraveled、performFetchWithCompletionHandler、didFinishDeferredUpdatesWithError
标签: ios objective-c