0

iOS 7 이상의 응용 프로그램에서 대용량 파일의 백그라운드 다운로드를 테스트하고 싶습니다., 다운로드 작업을 앱이 아닌 시스템에서 실행하도록하는 방법은 무엇입니까?

나는 Apple documentation on Background Execution에서 설명한대로 배경 구성이 NSURLSession입니다.

"일단 구성되면 NSURLSession 개체는 적절한 시간에 업로드 및 다운로드 작업을 시스템에 원활하게 제공합니다."

출시하기 전에 앱을 테스트 할 수 있도록 적절한 시간을 만들기 위해 노력하고 있습니다. 다양한 예제를 통해 포 그라운드로 다른 응용 프로그램을 가져 와서 백그라운드 다운로드 작업을 시스템에 전달할 수 있음을 알 수 있습니다.

그러나 그 경우는 아닙니다. 대신 다운로드가 앱의 제어하에 완료됩니다.

는 중요한

- (void)application:(UIApplication *)application 
handleEventsForBackgroundURLSession:(NSString *)identifier 
    completionHandler:(void (^)(void))completionHandler 

결코 내 응용 프로그램 위임에서 실행되지 않습니다.

iOS 시뮬레이터와 실제 장치 모두에서 핸드 오버를 강제 실행하려했지만 운이 없었습니다.

백그라운드 다운로드를 강제로 시스템에 전달하는 방법에 대한 생각은 인정 될 것입니다.

답변

0

"핸드 오버"가 없습니다. 백그라운드 세션의 모든 작업 항상은 별도의 프로세스에서 실행됩니다. 다운로드가 진행되는 동안 앱이 (사용자가 하지) OS에 의해 종료됩니다 경우

application:handleEventsForBackgroundURLSession:completionHandler: 방법은, 그러나, 만 실행됩니다. 이 경우 다운로드가 완료 될 때마다 앱이 백그라운드에서 다시 시작됩니다.

앱을 퇴거시키는 데 충분한 시간이 걸리는 백그라운드에서 대규모 다운로드를 시작하거나 앱이 퇴거 될 때까지 RAM에있는 다른 앱으로 전환하여 잠재적으로이를 테스트 할 수 있습니다.