从后台重新启动位置更新

时间:2017-09-19 12:09:58

标签: ios iphone swift gps core-location

我正在开发一款监控用户位置的应用 在我致电startUpdatingLocation()后,我可以将应用程序置于后台。它会继续更新位置。这很有效。

我的问题是:我可以通过后台didExitRegion电话重新开始持续的位置更新吗?现在如果我再次调用startUpdatingLocation(),应用程序会在10秒后被杀死。

func locationManager(_ manager: CLLocationManager, didExitRegion region: CLRegion) {
    locationManager.startUpdatingLocation()
}

所以步骤是:

  • 我向位置管理员询问startUpdatingLocation()
  • 当持续接收位置更新时,用户将应用程序置于后台。
  • 用户停留一段时间(例如咖啡),所以我要求位置经理放下地理围栏和stopUpdatingLocation()
  • 用户继续他的驾驶,所以当他离开地理围栏时,我想再次询问位置经理startUpdatingLocation()

1 个答案:

答案 0 :(得分:2)

请使用

startMonitoringSignificantLocationChanges()

即使在应用程序被杀之后也能正常工作。如果你的应用被杀,系统会自动终止startUpdatingLocation()。

您还需要启用它们,如图所示。

Set these setting