새로운 iOS7 API (NSURLSession)로 백그라운드 다운로드에 대한 Apple 설명서를 읽은 후 조금 실망했습니다. 나는 ... 애플이 어떤 배경에서 네트워크 가용성을 통해 일시 정지/다시 시작을 관리 (또는 그렇게 할 수있는 옵션을 제공합니다)하지만 것을 확신했다NSURLSession 백그라운드 다운로드 - 네트워크 오류 재개
그래서 문서를 읽고, 이것은 우리가 가지고 무엇을 :
When any task completes, the NSURLSession object calls the delegate’s URLSession:task:didCompleteWithError: method with either an error object, or nil if the task completed successfully. If the task is a resumable download task, the NSError object’s userInfo dictionary contains a value for the NSURLSessionDownloadTaskResumeData key. Your app should use reachability APIs to determine when to retry, and should then call downloadTaskWithResumeData: or downloadTaskWithResumeData:completionHandler: to create a new download task to continue that download. Go to step 3 (creating and resuming task objects).
은 지금까지 나는 해결책을 이해하지만, 내 질문은 : 네트워크의 손실을 처리하고 백그라운드에서 다운로드를 재개하는 가장 좋은 무엇 아키텍처?
내 입장에서는 네트워크를 사용할 수있을 때마다 모든 작업 (작성시 NSArray를 통해 참조 됨)을 재개하고 네트워크가 손실되면 일시 중단합니다. 이 전경에서 잘 작동하지만 배경에 대해 나는 다음과 같은 점에서 도움이 필요합니다 내 모든 작업을 연결하지 않고 백그라운드로 이동하면 내 애플, 전경에는 연결이없는 경우
이중단 남아 있고하지 않습니다를 네트워크가 사용 가능한 경우 다시 방문하십시오 ...
백그라운드에서 네트워크가 손실되면 모든 다운로드/작업이 중지됩니다. 시나리오 : 전경
- , 내 작업을 다운로드를 시작는
- 나는 배경과 10 초 후 이동은 "aireplan 모드"
- 에 내 모든 작업에 오류가있어 전환합니다. 따라서 URLSession 메서드에서 : done : doneCompleteWithError : downloadTaskWithResumeData를 사용하여 다시 시작하거나 (일부는 충분한 이력서 데이터를 가지고 있지 않기 때문에) 다시 시작할 수없는 경우를 제외하고는 새 작업을 만들고 있습니다. 그 시간에).
- 그때 나는 백그라운드에서 여전히 해요 등의 네트워크가 다시 응용 프로그램을 실행하지 않고있을 때 나는이 점을 해결하려면 어떻게 내가 ...
을에 "이력서"를 실행할 수 없습니다까지
실망감을 공유합니다. 당신은 당신이 애플에 대한 답변을 기다리고 있다고 언급합니다. 그들로부터 들었습니까? 결의안은 무엇입니까? – gavdotnet
애플과의 교류가 많았지 만 생산적이지는 않았으므로,이 사건을 처리해야하는 임의의 깃발을 사용하는 것이 좋습니다. 이 모드는 내 목표가 아니었지만 이것에 집중하지는 않았지만 테스트가 성공적이지 않았습니다. 이 부분에 대해 테스트 해 본다면 정보를 얻는 것이 여전히 흥미로울 것입니다. – Gros