場所を取得して、オンラインの場所と比較しようとしています。すべてバックグラウンドで発生します。作成したメソッドは、バックグラウンドの場所サービスを使用して正常に動作していますが、1 分ほどすると、ステータス バーの場所アイコンが消え、メソッドがはもう呼び出されていません
ここにコードがあります
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation {
double lat = newLocation.coordinate.latitude;
double lon = newLocation.coordinate.longitude;
NSURL * locationURL = [NSURL URLWithString:[NSString stringWithFormat:@"http://somedomainname.com/iphoneLocation?lat=%f&lon=%f",lat,lon]];
NSData * responseData = [NSData dataWithContentsOfURL:locationURL];
NSString* aStr;
aStr = [[NSString alloc] initWithData:responseData encoding:NSASCIIStringEncoding];
if ([aStr isEqualToString:@"out Of Any Knowen Range"] ){
UILocalNotification *notify =[[UILocalNotification alloc] init];
notify.alertAction = [[NSString alloc] initWithString: @"View"];
notify.fireDate=nil;
notify.alertBody = [NSString stringWithFormat:@"New Data Occured"];
notify.soundName = UILocalNotificationDefaultSoundName;
NSLog(@"Local notification should display");
[[UIApplication sharedApplication] presentLocalNotificationNow:notify];
}
}
そしてviewDid loadで私はこのようなものを使用しています
locationManager = [[CLLocationManager alloc] init];
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.delegate = self;
[locationManager startUpdatingLocation];
CLLocation *userLocation = [locationManager location];
それで、それの何が悪いのですか