在我们的应用程序中,我使用CoreLocation获取用户的位置。我认为调用startUpdatingLocation会每次调用locationManager:didUpdateLocations。但是,一旦第一次调用它,它们就再也不会被调用了。
在我的AppDelegate.m文件中:
然后通过NSTimer调用它:
上述代码应该每15秒调用一次startUpdatingLocation,但是didUpdateToLocation方法第二次没有被调用(第一次成功调用)……有没有办法“编程方式”调用(或强制)didUpdateToLocation?还是我们必须等待didUpdateToLocation获取位置?我已经搜索了如何每x分钟/秒获取用户位置的方法,但似乎没有人成功实现。我想做的就是Android使用Service类的等效操作(iOS没有这个)。任何帮助将不胜感激。谢谢。
在我的AppDelegate.m文件中:
- (void) startStandardUpdates {
if (_locationManager == nil) {
_locationManager = [[CLLocationManager alloc] init];
[_locationManager setDelegate:self];
_locationManager.desiredAccuracy = kCLLocationAccuracyBest;
_locationManager.distanceFilter = 10;
[_locationManager startUpdatingLocation];
} else {
NSLog(@"[LOCATION]: Location Manager already exists.");
[_locationManager startUpdatingLocation];
}
}
然后通过NSTimer调用它:
- (void) startTask {
NSLog(@"Start task called.");
[NSTimer scheduledTimerWithTimeInterval:15
target:self
selector:@selector(actualTask)
userInfo:nil
repeats:YES];
}
- (void) actualTask {
NSLog(@"[TASK]: Starting location service...");
[self startStandardUpdates];
}
上述代码应该每15秒调用一次startUpdatingLocation,但是didUpdateToLocation方法第二次没有被调用(第一次成功调用)……有没有办法“编程方式”调用(或强制)didUpdateToLocation?还是我们必须等待didUpdateToLocation获取位置?我已经搜索了如何每x分钟/秒获取用户位置的方法,但似乎没有人成功实现。我想做的就是Android使用Service类的等效操作(iOS没有这个)。任何帮助将不胜感激。谢谢。