【发布时间】:2014-10-15 09:50:20
【问题描述】:
当涉及到慢速后端和使用后台配置下载数据时,我遇到了问题。
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 上找到了这个link about timeout issue for background session。它已经 10 个月大了,但没有解决方案,只有人们同意。
【问题讨论】:
标签: objective-c background timeout nsurlsession nsurlsessionconfiguration