2011-11-02 2 views
0

내 iPhone에서 응용 프로그램을 시작하는 동안 서버에서 데이터를 다운로드해야합니다. 데이터를 다운로드하는 동안 (프로세스 중간에서) 홈 버튼을 눌러 백그라운드로 애플리케이션을 입력합니다.이 시점에서 이미 실행중인 API 요청을 중지해야합니다. 현재 applicationDidEnterBackground 메서드는 데이터를 다운로드 한 후 지연으로 호출합니다. 그 동안 응용 프로그램이 충돌합니다. 응용 프로그램이 백그라운드로 들어가는 동안 우리는 어떻게 URL 연결을 취소 할 수 있습니까?응용 프로그램이 백그라운드로 들어갈 때 API 요청 취소

도와주세요.

미리 감사드립니다.

답변

0

앱 컨트롤러에 일종의 플래그를 설정하여 요청이 취소되었는지 주기적으로 확인할 수 있습니다.

또는 더 좋게는 NSThread 개체가 취소되어야 함을 나타내는 메커니즘을 제공합니다. 백그라운드로 들어간 경우 분리 된 스레드를 취소 ([NSThread cancel] 경유) 한 다음 어떤 API 콜백을 가지고 있든간에 [NSThread isCancelled]YES을 반환하는지 주기적으로 확인해야합니다.

[NSThread cancel]에 대한 Apple의 설명서 링크가 있습니다. 이 도움이

http://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSThread_Class/Reference/Reference.html#//apple_ref/occ/instm/NSThread/cancel

희망!

+0

이것이 도움이된다면 답을 '수락'하는 것을 잊지 마십시오. 그것은 참가자들에게 여기서 질문에 대답하기를 원하는 동기를 부여합니다. :-) –

+0

Thanks Michael, 스레드가 내 응용 프로그램에있는 동안 스레드를 취소하는 것이 좋습니다. 하지만 내 응용 프로그램의 대리인 메서드 applicationdidEnterBackground 지연 (요청 된 API 시간을 다운로드하는 것입니다.), 그래서 지연을 극복하는 방법? 미리 감사드립니다. – Rajesh

관련 문제