我正在尝试记录一段时间内用户的位置。如果用户在移动,它工作正常,委托方法didUpdateToLocation被调用reliably.However如果用户是静止的,应用程序在后台运行,一段时间后,委托方法不再被调用。要重新启动它,需要将应用程序买到前台。一旦它被激活,委托方法就会被再次可靠地调用。
我最初认为这可能是因为CLLocationManager对象是在ViewController中声明的,所以我将其更改为在AppDelegate中声明,但这也没有帮助。
我也尝试过distanceFilter属性,但没有用。我目前正在使用下面的代码在View控制器中设置它。请注意,对象本身是在AppDelegate对象中声明和初始化的。
app.locationManager.delegate = self;
app.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
app.locationManager.distanceFilter = kCLDistanceFilterNone;
[app.locationManager startUpdatingLocation];有没有其他人遇到过这个问题?如有任何建议,我们将不胜感激。我已经为此挣扎了几天了。
发布于 2013-06-18 16:46:24
将此代码添加到UpdateLocation方法中
- (void) updateLocation{
self.locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.pausesLocationUpdatesAutomatically = NO;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
if ([CLLocationManager locationServicesEnabled]) {
[locationManager startUpdatingLocation];
} else {
NSLog(@"Location services is not enabled");
}
}还可以在方案中编辑设置:方案/编辑方案/选项/允许位置模拟选中,但没有默认位置设置。
https://stackoverflow.com/questions/14503161
复制相似问题