2013-04-22 3 views
0

'필요한 배경 모드'아래의 plist에 '위치 업데이트 용 앱 레지스터'를 넣었어도 내 iOS 앱이 죽는 경우가 있습니다.백그라운드에서 위치 업데이트를 요청해도 내 IOS 앱이 죽는 이유는 무엇입니까?

- (void)applicationDidEnterBackground:(UIApplication *)application 
{ 
NSDate *dateEnteredIntoBackground = [NSDate date]; 

FSLog(@"*** ENTERING BACKGROUND ***"); 

[application beginBackgroundTaskWithExpirationHandler:^{ 

    NSDate *dateOfTermination = [NSDate date];    

}]; 
} 

그것이 쫓겨나 않는 경우, 위의 코드를 모니터링하는 동안의있는 NSDate 객체를 10 분 간격으로 항상.

그러나 문제를 더욱 혼란스럽게 만들기 위해 애플리케이션을 종료하지 않고 백그라운드에서 30 분 이상 실행하는 것이 좋을 때가 많습니다. 추가 테스트로서 아이폰을 패러데이 케이지에 설치하여 위치 델리게이트 업데이트가 호출되지 않도록했습니다 (이것은 기록 된 로그 파일을 다시 읽음으로써 확인됩니다). 그래서 그것은 배제 될 수있는 것처럼 보일 것입니다.

단서/조언이 필요하십니까?

감사합니다.

칼입니다.

답변

5

실제로 앱이 일시 중지되지 않도록하려면 새 위치를 요청해야합니다. 일정 시간 동안 새로운 위치를 요청하지 않으면 iOS가 앱을 일시 중지합니다. 해결 방법으로

, 당신은 다음을 수행 할 수

  • 가 지속적으로
  • 사용 "상당한 변화 위치 서비스"를 깨우 것이다 (당신의 만료 처리기에서 최신에서) 새 위치를 요청을 당신까지 이 위치는

자세한 내용은 "App States and Multitasking""Making your App Location Aware"에 공식 애플 문서의 두 부분을 찾을 수 있습니다 변경 때마다.

관련 문제