2011-10-30 6 views
3

내 iPhone 앱에서 지리적 위치 정보를 사용하고 있습니다. 몇 초 동안 지리적 위치를 사용했거나 앱이 백그라운드에 있어도 배터리가 빨리 소모됩니다.iOS : 지리적 위치가 아직 켜져 있는지 확인하는 방법은 무엇인가요?

내 iPhone 장치에서 지리적 위치 서비스가 계속 켜져 있는지 어떻게 확인할 수 있습니까? 이것은 내가 사용했던 코드 :

...

locationManager = [[CLLocationManager alloc] init]; // Create new instance of locMgr 
    locationManager.delegate = self; 

    locationManager.distanceFilter = kCLDistanceFilterNone; 
    locationManager.desiredAccuracy = kCLLocationAccuracyBest; 


    [locationManager startUpdatingLocation]; 
    NSLog(@"locationManager startUpdatingLocation"); 

    reverseGeocoder = [[MKReverseGeocoder alloc] initWithCoordinate:locationManager.location.coordinate]; 
    reverseGeocoder.delegate = self; 
    [reverseGeocoder start]; 

    } 

    ... 

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 
{ 


} 


- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error 
{ 
    NSLog(@"reverseGeocoder failed: %@", [error localizedDescription]); 

} 

- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark 
{ 
    NSLog(@"locality %@", placemark.locality); 
    location = [placemark.locality retain]; 
} 

답변

1

는 설정 응용 프로그램으로 이동, 확인하고 앱에서 위치 서비스를 사용하는 상황을 확인하기 위해 위치 서비스에서, 회색 화살표가있을 것입니다 최근에 사용한 앱 옆에있는 자주색 화살표와이를 적극적으로 사용하는 앱 옆에있는 자주색 화살표가 있습니다.

-(void)appWillResignActive:(NSNotification*)notification 
{ 
    // pause GPS when not active to save battery 
    [locationManager stopUpdatingLocation]; 
} 

어딘가에 알림 구독하기 : 당신이 당신의 요구에 충분히 좋은 위치를 가지고 언제든지 응용 프로그램이 활성화 사임으로

enter image description here

은 즉시 CLLocationManager을 해제해야합니다 배터리 사용을 줄이기 위해 보기 컨트롤러에서와 같이 :

[[NSNotificationCenter defaultCenter] addObserver:self 
    selector:@selector(appWillResignActive:) 
    name:UIApplicationWillResignActiveNotification object:nil]; 
관련 문제