2012-06-07 3 views
0

클라이언트 용 iPhone 앱을 유지 관리하고 있습니다. 앱이 백그라운드에서 실행되지 않습니다 (애플리케이션이 설정 plist에서 배경 = 예로 실행되지 않음). 그러나 사용자가 일시적으로 중단 된 경우 (예 : 전화 통화) 또는 앱이있는 경우 사용자는 로그 아웃해야합니다. 현재 applicationWillResignActive :에서이 작업을 수행합니다. beginBackgroundTaskWithExpirationHandler를 사용하는 것에 대해 처음에는 생각했지만 반환 값은 항상 "UIBackgroundTaskInvalid"임을 알았습니다. 내가 배경으로 도망 칠 수 없기 때문이라고 생각합니다. 그러면 문제는 로그 아웃을 어떻게 처리해야합니까? 로그 아웃을 동기로 만들어야하며 시간이 끝나기를 바랍니다 (10 초 내에 맞습니까?).UIBackgroundModes 임시 또는 영구 종료시 로그 아웃

처음에는이 beginBackgroundTaskWithExpirationHandler가 유효한 백그라운드 작업 식별자를 반환하지 않고 앱이 잘 로그 아웃되었음을 알지 못했습니다. 사용자 중 하나가 (아이 패드 1) "허용 된 시간을 넘어 활성 주장이있다"와 충돌을 가진 유지를 제외하고.

다른 사람이이 문제를 처리?

답변

0

를 앱이되지 배경, 당신은 필요가없는 경우 하여 제공 -applicationWillTerminate: 방법 로깅을 수행하기 위해 그 중단을 프로그래머 또는 응용 프로그램이 종료 될 때 호출됩니다 무엇으로

- (void)applicationWillTerminate:(UIApplication *)application { 
/* 
Called when the application is about to terminate. 
Save data if appropriate. 
*/ 

} 
+0

applicationWillTerminate :.. (전화 등) 중단 요구되지 않는 경우에도 애플 리케이션은 배경을 지원하지 않습니다 .ApplicationWillResignActive :하지만, 전화를받습니다 그리고 이것은 정확히 whe 지금 사용자를 로그 아웃하고 있습니다. 그것은 내가하고있는 일에 대해 걱정하고있는 iPad 1 가끔 충돌을 제외하고는 잘 작동합니다. 기본 질문은 백그라운드 모드를 실행하지 않을 때 어떻게 사용자가 로그 아웃되는지 확인하는 것입니다. 앱이 작업을 완료하는 데 시간이 얼마나 걸리며이 작업이 UI 스레드에 있어야합니까? –