我试图在iOS7中使用这种技术每隔x秒获取一个位置 - Periodic iOS background location updates。
在我的didUpdateLocations中:
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
[self.locationManager setDesiredAccuracy:kCLLocationAccuracyKilometer];
[self.locationManager setDistanceFilter:9999];
}
当我运行这个时,我似乎得到一个循环。 setDesiredAccuracy: - 我认为这会在更改时强制更新。这就是为什么我得到一个循环,这是对的吗?当我评论这些时,它的行为就像我期望的那样。无论如何,当我设置这些时,它是否会阻止它获取位置?
答案 0 :(得分:0)
听起来你应该在你调用“setDesiredAccuracy
”的频率上设置某种时间/日期标记。如果你打电话一次,请不要再打电话一段时间。
类似的东西:
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
NSTimeInterval secondsSinceLastResetOfAccuracy = [lastResetTime timeIntervalSinceNow];
if(secondsSinceLastResetOfAccuracy > 60 * 60) // one hour
{
[self.locationManager setDesiredAccuracy:kCLLocationAccuracyKilometer];
[self.locationManager setDistanceFilter:9999];
lastResetTime = [NSDate date]; // new "time stamp"
}
}