これは私のロケーションマネージャーコードです
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy=kCLLocationAccuracyNearestTenMeters;
locationManager.distanceFilter = 200;
mapView.showsUserLocation=true;
[locationManager startUpdatingLocation];
これは startupdatelocation にも使用される別の関数です
- (void)startLocationManager:(NSTimer *)timer
{
[locationManager startUpdatingLocation];
[timer invalidate];
timer = nil;
}
そしてここに
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
NSLog(@"Testing");
CLLocationCoordinate2D location;
location.latitude=newLocation.coordinate.latitude;
location.longitude=newLocation.coordinate.longitude;
[locationManager stopUpdatingLocation];
[NSTimer scheduledTimerWithTimeInterval:60
target:self
selector:@selector(startLocationManager:)
userInfo:nil
repeats:NO];
}
これは正常に機能していますが、アプリはバックグラウンドで実行されません。ロケーションマネージャーを削除してNStimer
停止しない場合、アプリはバックグラウンドで完全に正常に実行されます。1分ごとにロケーションマネージャーを実行して座標を更新したい. アプリはバックグラウンドでも実行する必要があります。