사용자를 추적 할 수있는 백그라운드 모드에서 실행되는 응용 프로그램을 작성하고 (지역 모드에서 위치를 업데이트하기도 함) 지역 모니터링을 사용하여 주변 지점을 알려줍니다. 지역 모니터링에서 응용 프로그램을 다시 시작하는 기능을 사용하지 않습니다.applicationDillEnterBackground after background 위치 모드를 사용하는 응용 프로그램의 경우
현재 applicationWillTerminate:
메시지를받은 후 위치 업데이트를 중지하고 영역 모니터링에서 모든 지점을 제거합니다. 응용 프로그램의 이상한 동작을 발견했습니다. (아래 같은 순서대로) 다음과 같은 메시지는 멀티 태스킹 메뉴를 죽이려 후 응용 프로그램에 전달됩니다
applicationWillTerminate:
applicationDidEnterBackground:
- (때로는) 한 번 더
locationManager:didUpdateToLocation:fromLocation:
하는 경우 이 응용 프로그램의 백그라운드 위치 모드를 등록하지 않아 대신 그냥 죽입니다.
사용자가 멀티 태스킹 메뉴에서 응용 프로그램을 종료하고 영역 모니터링에서 메시지를 가져 오지 않으면 응용 프로그램을 종료하고 싶습니다 (아무런 시점도 추적하지 않습니다). 그래도 배경 위치 모드를 사용할 수 있어야합니다. 그 목적은 배터리 사용을 최소화하는 것입니다. 그것을 성취하기 위해 무엇을해야합니까?
또한 applicationWillTerminate:
이후에 응용 프로그램에 applicationDidEnterBackground:
이 수신되는 이유는 무엇입니까? 멀티 태스킹 메뉴에서 종료 한 후에도 계속 실행 중이십니까?
문제는 응용 프로그램이'applicationWillTerminate :'다음에 실행된다는 것입니다. 그 후에,'applicationDidEnterBackground :'가 호출됩니다. 문제는 그것이 (언제까지) 죽었을 때입니다. 또한 사용자가 응용 프로그램을 "종료"하면 영역 모니터링을 중지하고 싶기 때문에'applicationDidEnterBackground :'에서 수행 할 수 없습니다. – Xilexio
iOS 4.0 이상의 문서에 따르면 applicationDidEnterBackground 뒤에 애플리케이션이 삭제됩니다. http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIApplicationDelegate_Protocol/Reference/Reference .html –
'applicationDidEnterBackground :'다음에 응용 프로그램이 종료 될 수 있음을 나타냅니다. 예를 들어, 지역 모니터링을 사용한다면,'application : didFinishLaunchingWithOptions :'옵션과'UIApplicationLaunchOptionsLocationKey' 옵션을 가지고 실행될 것입니다. 지역의 경계선을 넘을 때 응용 프로그램을 깨우는 기능을 사용하지 않기 때문에 폐쇄되거나 최소한 배터리를 사용하지 않을 것으로 기대됩니다. 하지만 시스템 콘솔 앱에서 확인한 것처럼 배경 모드가 설정되지 않은 상태에서 kill (9) 신호가 내 앱에 전송되지 않고 종료됩니다. – Xilexio