我正在开发一个监控用户位置的应用程序。
在我给startUpdatingLocation()打电话之后,我可以把应用程序放到后台。它将继续更新位置。效果很好。
我的问题是:我可以从后台的didExitRegion调用重新启动连续的位置更新吗?现在,如果我再次调用startUpdatingLocation(),应用程序将在10秒后终止。

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

所以步骤是:
我要求位置经理startUpdatingLocation()
当持续收到位置更新时,用户将应用程序置于后台。
用户停了一会儿(例如咖啡),所以我要求位置管理器放下地理围栏并stopUpdatingLocation()
用户继续他的驱动器,所以当他离开地理围栏时,我想请位置经理再次startUpdatingLocation()

最佳答案

请使用

startMonitoringSignificantLocationChanges()

即使在应用程序被杀后也能正常工作。如果应用程序被终止,系统将自动终止startUpdatingLocation()。
您还需要启用这些功能,如图所示。
ios - 从后台重启位置更新-LMLPHP

10-07 19:51
查看更多