当涉及到缓慢的后端和使用后台配置下载数据时,我遇到了问题。
NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration backgroundSessionConfiguration:identifier];
_backgroundSession = [NSURLSession sessionWithConfiguration:sessionConfig delegate:self delegateQueue:nil];
NSURLSessionDownloadTask *downloadTask = [_backgroundSession downloadTaskWithURL:URL];
[downloadTask resume];
如果连接已建立但发送回数据需要超过 60 秒的时间,则会发生超时。那也行。但是我遇到的行为是我没有收到错误。Session 只是发出一个新的请求。“再给我数据”。我不知道这发生在哪里。不在我的代码中,也没有调用我知道的委托方法。我只能访问服务器日志。服务器发送回数据大约需要 68 秒,但应用程序只是忽略它,因为它正在等待新请求。
一种解决方案是增加超时值。但我不喜欢它,它只适用于 iOS 7。不适用于 iOS 8。
sessionConfig.timeoutIntervalForRequest = 10 * 60.0;
有没有人对此有任何见解?我在stackoverflow上找到了关于后台会话超时问题的链接。它已经 10 个月大,但没有解决方案,只有人们同意。