我需要下载成千上百个媒体文件的一部分。假设每个下载文件大小为1MB,总共1000个小文件需要下载。在循环中,对于每个文件,我将创建一个下载任务并像以下代码一样恢复它。
NSUrlSessionDownloadTask downloadTask = session.CreateDownloadTask(request);
downloadTask.Resume();
任务开始时文件下载正常,问题出现在应用程序进入后台时。
这是我使用的会话配置:
sessionConfig.AllowsCellularAccess = true;
sessionConfig.SessionSendsLaunchEvents = true;
sessionConfig.NetworkServiceType = NSUrlRequestNetworkServiceType.Default;
sessionConfig.HttpMaximumConnectionsPerHost = 4;
sessionConfig.Discretionary = false;
以下是我的问题:
代理方法只有在返回应用程序时或所有下载任务完成时才会被调用,这是预期行为吗?返回应用程序将触发数百个事件...而这需要一段时间!
NSUrlSession对下载任务的数量有任何限制吗?