2011-10-28 3 views
1

이제 백그라운드로 앱이 이동할 때 내 앱의 저장 데이터를 서버에 전송해야하지만 위젯 기능인 applicationDidEnterBackground에서 네트워크 전송을 사용하는지 알 수 있습니다. 앱을 다시 지상으로 보낸 지 약 5 초 밖에 없기 때문입니다.iphone 앱이 backgound로 이동할 때 서버와 통신 할 수 있습니까?

누구든지 위임 함수 applicationDidEnterBackground 또는 applicationWillResignActive에서 네트워크 전송을 사용할 수 있는지 알려 줄 수 있습니까? 아니면 좀 더 나은 방법이 있습니까?

답변

1

ASIHTTPRequest 라이브러리를 사용해보십시오. 앱이 백그라운드로 들어가면 다시 다운로드 할 때 다운로드를 일시 중지하고 다시 활성화 할 때 다시 시작할 수 있습니다.

3

백그라운드에서 네트워크를 계속 사용할 수 있다고 가정합니다. 멀티 태스킹이 설계된 하나의 작업은 예를 들어, 앱이 백그라운드로 이동하더라도 사진 업로드를 계속할 수 있습니다.

당신은 연결을 시작하기 전에 다음을 호출해야합니다 : 연결이 종료 할 때 다음을 호출 할 UIBackgroundTaskIdentifier을

- (UIBackgroundTaskIdentifier)beginBackgroundTaskWithExpirationHandler:(void (^)(void))handler 

을 기억 :

- (void)endBackgroundTask:(UIBackgroundTaskIdentifier)identifier 

우리는 계속이 방법을 사용 앱이 백그라운드에있는 동안 사용자가 구입 한 콘텐츠를 다운로드합니다. 더 까다로운 부분은 ExpirationHandler입니다. 즉 연결이 실행되는 동안 iOS가 앱을 종료하면 어떻게해야할까요? 이 경우 앱을 다시 시작하면 다운로드가 중단되고 앱이 다시 시작됩니다.

+0

예, 사과문을 읽었습니다. http://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/iphoneappprogrammingguide.pdf 그리고 나는 그것을 결정하려고 노력할 것입니다. 고맙습니다. – Budweiser

+0

이 방법이 효과가 있다면이 대답에 동의라고 표시하십시오. – FelixLam

관련 문제