2011-12-26 107 views
2

我開始使用ios-5開發項目, 我想每15分鐘查找當前位置。如何在每15分鐘查找當前位置

這是我的代碼

- (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"]; 
     } 
    } 
} 

我遇到的問題是,這個代碼工作的背景,但我得到的當前位置(這裏是newLocation)每5分鐘沒有1分鐘後,即使我設置locationUpdateInterval = 60秒

我已經嘗試了一切,但沒有得到確切的解決方案。 在此先感謝!

回答

1

的傳聞我聽說的是,爲了節省電池壽命,CoreLocation更新只定期解僱,生活在後臺的應用程序。

我在這裏看到的這個主題有幾個相關的問題,like this one

而且,看看Apple's Location Awareness Programming Guide,特別是「啓動重大改變的位置服務」一節。