我目前正在使用其他开发人员启动的 iOS 应用程序。该应用需要监控位置变化,因为它需要以低精度(百米)了解用户位置。之前的位置实现是使用NSTimer
and完成的startUpdatingLocation
。执行是这样的:
// Fire each 10 seconds start updating location
self.timerPosition = [NSTimer scheduledTimerWithTimeInterval:ti
target:self
selector:@selector(location)
userInfo:nil
repeats:YES];
[self.timerPosition fire];
位置选择器执行此操作
// Configure & check location services enabled
...
self.locman.delegate = self;
self.locman.desiredAccuracy = kCLLocationAccuracyHundredMeters;
[self.locman startUpdatingLocation];
然后在位置管理器委托中
[manager stopUpdatingLocation];
但是阅读有关在 Apple 文档中获取用户位置的信息,似乎以低功耗获取位置的正确方法是使用startMonitoringSignificantLocationChanges
.
startMonitoringSignificantLocationChanges
我的问题是,将位置计时器与而不是相结合是一个好的决定startUpdatingLocation
,还是一种无意义的方法?
当应用程序在后台时,我不需要获取位置,但我想知道当应用程序处于活动状态时用户何时更改了它的位置。