在我的ios应用程序中,我在计时器上使用核心位置管理器来获取当前位置。该应用程序是可配置的,所以我允许用户将其设置为低至1分钟。因此,即使应用程序在后台,也会每1分钟报告一次gps位置。
我不想对核心位置管理器使用重大更改,而是希望继续使用计时器,因为准确性会更好。
将定时器设置为低至5秒是否有任何可预见的问题?我这样做的原因是获取位置,将其保存在变量中,然后在5秒内再次获取它并将其与距离变量进行比较,然后确定用户是否移动得足够远并报告它是否如此。
答案 0 :(得分:0)
获取位置取决于查找WiFi信号和GPS信号的难易程度。如果没有信号,你可以设置1分钟或1秒。请在评论Here
中查看答案 1 :(得分:0)
您正在遵循错误的方法来执行此操作。您需要使用Apple提供的Delegates
来实现它。
你正在做什么,是完全错误的,为什么你想在5秒后检查位置,如果它没有从最后一个位置改变。
解决问题的方法:
您需要根据您的要求设置准确度:
kCLLocationAccuracyBestForNavigation
kCLLocationAccuracyBest
kCLLocationAccuracyNearestTenMeters
kCLLocationAccuracyHundredMeters
kCLLocationAccuracyKilometer
kCLLocationAccuracyThreeKilometers
只要位置发生特定变化,您就会获得委托方法的调用:
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
它可以节省电池并提高性能,因为它可以节省不必要的电话,一次又一次地获取位置。