我正在使用位置服务器开发IOS应用程序。在应用程序中,我定期检查用户位置,并将位置详细信息发送到服务器。
以下是步骤:
1:App注册位置更新(在plist中)。
2:添加了如下代码:
-(void)startUpdating{
locationManager = [[CLLocationManager alloc]init];
locationManager.delegate = self;
[[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:nil];
locationManager.pausesLocationUpdatesAutomatically = YES;
[locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
locationManager.distanceFilter = kCLDistanceFilterNone;
}
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{
dispatch_async(dispatch_get_main_queue(), ^{
//call web service location
[self UpdateAppmyLocation:@"1"];
});
[locationManager allowDeferredLocationUpdatesUntilTraveled:200 timeout:(NSTimeInterval)90];
}
- (void)applicationWillResignActive:(UIApplication *)application
{
[locationManager startUpdatingLocation];
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
[locationManager stopUpdatingLocation];
}
3:在didFinishLaunchingWithOptions中调用startUpdating方法。
一切正常,但每分钟调用didUpdateLocations:locations方法。我试图延迟一段时间,因此不会导致电池问题。
注意:使用iOS 7.1在iPhone 5上测试应用程序
请让我知道解决方案。
答案 0 :(得分:1)
https://github.com/voyage11/Location
使用此代码。您可以在需要多长时间后调用它来设置时间。 我已经尝试了很多代码,但我发现这是最准确的并列出电池问题。这对于后台定位服务来说也很棒。