2014-10-17 69 views
1

我必须进行检查,并在我的应用程序的后台下载,使用NSURLSession为此多个Web服务。当应用程序在后台我用这个代码:呼叫完成处理后台多NSURLSessions取

-(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{ 
    [self methodToStartAllDownloads]; 
    //Completion handler called somehow 
} 

的问题是,由于所有NSURLSessions有一个完成处理程序和工作异步,很难知道什么时候所有的人都完成了,这样我就可以调用上述方法中的completionHandler(UIBackgroundFetchResultNewData)。有没有办法实现像所有下载完成时调用完成处理程序?

+0

任何关于这一主题的更新? – Marcel 2015-11-11 00:04:07

+1

我用一个全局变量来计算完成下载的数量,并调用完成处理时,所有的下载都完成。但是,这不是一个很好的解决方案,我仍然在寻找更好的解决方案。 – Jorn 2015-11-12 16:21:30

回答

0

您可以在[self methodToStartAllDownloads];之后调用完成处理程序,当您使用带有后台配置的NSURLSession时,您的下载和上传将交给系统,该系统将在完成所有任务后唤醒您的应用程序。

我建议你阅读这article了解NSURLSession背景更好