2012-06-13 3 views
0

iPhone에서 LocationManager를 사용하여 위치 추적 애플리케이션을 개발하고 있습니다. 다음은 나의 질문이다. 사용자가 iphone의 홈 버튼을 클릭하면 응용 프로그램이 백엔드로 전환되었음을 의미합니다. 위치 관리자의 스레드는 계속 작동합니까? 위치 관리자가 현재 위치를 업데이트합니까? 다음은 샘플 코드입니다.LocationManager IOS의 백엔드에서 작동

CLLocationManager *_locationManager; 

- (void)startStandardUpdates { 
    if (nil == locationManager) { 
     locationManager = [[CLLocationManager alloc] init]; 
    } 

    locationManager.delegate = self; 
    locationManager.desiredAccuracy = kCLLocationAccuracyBest; 

    // Set a movement threshold for new events. 
    locationManager.distanceFilter = kCLLocationAccuracyNearestTenMeters; 

     //Will the thread still work even the application is switched to background? 
    [locationManager startUpdatingLocation]; 

    CLLocation *currentLocation = locationManager.location; 
    if (currentLocation) { 
     PAWAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 
     appDelegate.currentLocation = currentLocation; 
    } 
} 
+0

함수 내에서 'printf와'자신이 테스트! – Oliver

답변

0

그런 다음 위치를 기록해야합니다.

백그라운드에서 locationmanager에 대한 매우 유용한 자습서가 있습니다.

도움이 될 수 있습니다.

사과는이 verry를별로 좋아하지 않으며 백그라운드에서 20 분이 지나면 앱을 죽일 것입니다. 당신은 질문이있는 경우

http://mobile.tutsplus.com/tutorials/iphone/ios-multitasking-background-location/

행운을 빕니다,

, 그들에게 물어 주시기 바랍니다.

0

위치 관리자는 앱을 중지하거나 해제하지 않으면 앱이 일시 중지 될 때까지 계속됩니다. info.plist에서 필요한 백그라운드 작업을 설정하면 계속해서 무제한으로 업데이트 할 수 있습니다. 이 경우 앱이 일시 중지 된 경우 앱에서 이벤트가 발생합니다.

즉, 백그라운드에서 메소드를 호출하는 것은 상당히 어려울 수 있습니다.

서비스를 백그라운드 상태로 사용하려는 경우에는 여러 가지 고려 사항이 있습니다. 스레딩 및 잠금, UI 부족 및 runloop 유휴 문제가 많이 있습니다. 성취하고자하는 것을 진지하게 평가하고 그것을 성취하는 가장 간단한 방법을 고려해야합니다. 배터리 수명은 휴대용 장치에있어 가장 중요한 문제입니다. 귀하의 기능은 에너지 사용을 보증하기 위해 사용자에게 최대의 이익이되어야합니다. 기기를 잠 그거나 사용자 행동에 간섭하는 경우 환영받는 사람이 아닙니다.

당신은 당신에게 약간의 통찰력과 솔루션을 제공 할 수있는 GitHub의에 내 자신의 핸들러의 예를 볼 수 있습니다

TTLocationHandler

0
  • 노트를

이 있습니다 개발자 사이트에서 백그라운드에서 사용자의 위치를 ​​추적하는 여러 가지 방법으로, 실제로는 실제로 앱을 실행하지 않아도됩니다. 백그라운드에서 지속적으로 :

The significant-change location service (Recommended) 

Foreground-only location services 

Background location services 

중요한 변경 위치 서비스는 고정밀 위치 데이터가 필요없는 앱에 적합합니다. 이 서비스를 사용하면 사용자의 위치가 크게 변경된 경우에만 위치 업데이트가 생성됩니다. 따라서 중요하지 않은 위치 관련 정보를 사용자에게 제공하는 소셜 앱이나 앱에 이상적입니다. 업데이트가 발생했을 때 앱이 일시 중지되면 시스템이 업데이트를 처리하기 위해 백그라운드에서 깨어납니다. 응용 프로그램이이 서비스를 시작한 후 종료되면 새 위치를 사용할 수있게되면 시스템이 자동으로 응용 프로그램을 다시 실행합니다. 이 서비스는 iOS 4 이상에서 사용할 수 있으며 휴대 전화가있는 기기에서만 사용할 수 있습니다.

포 그라운드 전용 및 백그라운드 위치 서비스 모두 표준 위치 핵심 위치 서비스를 사용하여 위치 데이터를 검색합니다. 유일한 차이점은 포 그라운드 전용 위치 서비스는 앱이 일시 중지 된 경우 업데이트를 제공하지 않기 때문입니다. 앱이 다른 백그라운드 서비스 나 작업을 지원하지 않을 경우 발생할 수 있습니다. 포 그라운드 전용 위치 서비스는 포 그라운드에서 위치 데이터 만 필요로하는 앱을 대상으로합니다.

UIBackgroundModes 키 (위치 값 포함)를 Info.plist 파일에 포함하여 배경에있을 때도 사용자에게 지속적인 위치 업데이트를 제공하는 앱을 사용하면 백그라운드 위치 서비스를 사용할 수 있습니다. 이 값을 UIBackgroundModes 키에 포함해도 시스템이 앱을 일시 중지하지 못하도록하지는 않지만 전달할 새 위치 데이터가있을 때마다 앱을 깨워 야한다고 시스템에 알려줍니다. 따라서이 키는 앱이 백그라운드에서 실행되도록하여 위치 업데이트가 발생할 때마다 처리하도록합니다.

enter link description here

관련 문제