Objective c 如何在每15分钟内找到当前位置
我开始用ios-5开发一个项目, 我想每隔15分钟找到当前位置 这是我的密码Objective c 如何在每15分钟内找到当前位置,objective-c,ios4,ios5,ios-simulator,ip,Objective C,Ios4,Ios5,Ios Simulator,Ip,我开始用ios-5开发一个项目, 我想每隔15分钟找到当前位置 这是我的密码 - (void)applicationDidEnterBackground:(UIApplication *)application { locationManager = [[CLLocationManager alloc] init]; locationManager.delegate = self; locationManager.desiredAccuracy = kCLLocati
- (void)applicationDidEnterBackground:(UIApplication *)application {
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;
[locationManager startUpdatingLocation];
}
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
NSDate *newLocationTimestamp = newLocation.timestamp;
NSDate *lastLocationUpdateTiemstamp;
int locationUpdateInterval = 60; //1min
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
if (userDefaults) {
lastLocationUpdateTiemstamp = [userDefaults objectForKey:@"myevent"];
if (!([newLocationTimestamp timeIntervalSinceDate:lastLocationUpdateTiemstamp] < locationUpdateInterval)) {
NSLog(@"New Location: %@", newLocation);
//[self locationManager:locationManager didUpdateToLocation:newLocation fromLocation:oldLocation];
[userDefaults setObject:newLocationTimestamp forKey:@"myevent"];
}
}
}
-(无效)应用程序标识符背景:(UIApplication*)应用程序{
locationManager=[[CLLocationManager alloc]init];
locationManager.delegate=self;
locationManager.desiredAccuracy=KCallocationAccuracyNearesttenmeters;
[locationManager startUpdatingLocation];
}
-(void)locationManager:(CLLocationManager*)manager didUpdateToLocation:(CLLocation*)newLocation fromLocation:(CLLocation*)oldLocation
{
NSDate*newLocationTimestamp=newLocation.timestamp;
NSDate*LastLocationUpdateItemStamp;
int locationUpdateInterval=60;//1分钟
NSUserDefaults*userDefaults=[NSUserDefaults standardUserDefaults];
如果(用户默认值){
LastLocationUpdateItemStamp=[userDefaults objectForKey:@“myevent”];
如果(!([newLocationTimestamp timeIntervalSinceDate:LastLocationUpdateTimeStamp]
我遇到的问题是,这段代码是在后台工作的,但我每5分钟得到一个当前位置(这里是newLocation),而不是在1分钟之后,甚至我设置了locationUpdateInterval=60秒
我什么都试过了,但没有得到确切的答案。
提前谢谢 我听到的轶事证据是,为了节省电池寿命,CoreLocation更新只会定期为后台应用程序启动 关于这个主题,我在这里看到了一些相关的问题 另外,请看一看,特别是“启动重大更改位置服务”部分