Ios 根据应用程序状态在重要位置更改监视和位置更新监视之间切换

Ios 根据应用程序状态在重要位置更改监视和位置更新监视之间切换,ios,core-location,cllocationmanager,Ios,Core Location,Cllocationmanager,当应用程序未运行时,我们使用显著的位置变化监控来了解用户的行踪。该数据基于蜂窝塔信号,因此不太准确。我们希望尽可能使用更准确的数据,即当应用程序处于活动状态或在后台运行时 问题是,我应该同时使用“startMonitoringSignificantLocationChanges”和“startUpdatingLocation”,还是在这两种方法之间切换?如果第二个选项更好,我应该使用哪些应用程序代理事件来执行必要的切换?除非您希望支持需要连续高精度定位流的功能,否则最好避免始终通过startUp

当应用程序未运行时,我们使用显著的位置变化监控来了解用户的行踪。该数据基于蜂窝塔信号,因此不太准确。我们希望尽可能使用更准确的数据,即当应用程序处于活动状态或在后台运行时


问题是,我应该同时使用“startMonitoringSignificantLocationChanges”和“startUpdatingLocation”,还是在这两种方法之间切换?如果第二个选项更好,我应该使用哪些应用程序代理事件来执行必要的切换?

除非您希望支持需要连续高精度定位流的功能,否则最好避免始终通过
startUpdatingLocation
使用高精度GPS数据

我从你的问题中了解到,当你的应用程序被唤醒时,你只打算在特定的兴趣点使用更精确的位置。在这种情况下,第二种方法是仅在需要时打开更精确的位置数据,这将是一个更好的主意

CLLocationManager
委托中的
locationManager(uquo:didUpdateLocations:)
在您的案例中是一个很好的起点。请记住,重要的位置更改监控API至少每15分钟唤醒系统一次,即使没有位置更改,直到系统显式停止。因此,我们必须小心使用它


检测准确的位置跟踪,同时确保您不会耗尽所有的手机电池,这是一个非常需要解决的问题。您可能想尝试一下第三方SDK,如专门从事此领域的SDK。

除非您想支持需要连续高精度定位流的功能,否则最好避免始终通过
startUpdatingLocation使用高精度GPS数据

我从你的问题中了解到,当你的应用程序被唤醒时,你只打算在特定的兴趣点使用更精确的位置。在这种情况下,第二种方法是仅在需要时打开更精确的位置数据,这将是一个更好的主意

CLLocationManager
委托中的
locationManager(uquo:didUpdateLocations:)
在您的案例中是一个很好的起点。请记住,重要的位置更改监控API至少每15分钟唤醒系统一次,即使没有位置更改,直到系统显式停止。因此,我们必须小心使用它

检测准确的位置跟踪,同时确保您不会耗尽所有的手机电池,这是一个非常需要解决的问题。您可能想尝试一下第三方SDK,比如专门从事此领域的SDK