Luc*_*lla 7 ios nsurlsession alamofire
当我使用后台会话配置设置NSURLSession/Alamofire.Manager时,如果没有互联网连接,我希望收到通常的NSError"错误域= NSURLErrorDomain Code = -1009"Internet连接似乎处于脱机状态."
如果我没有使用后台配置,这种情况经常发生,但如果我进行这样的配置,我的回调/委托方法永远不会被调用.当我再次激活wifi时,它最终会被调用.
我希望马上收到一个错误.我错过了什么吗?
后台会话任务中网络故障没有返回任何错误的原因是:
一般来说,如果线路出现问题,NSURLSession 后台会话不会使任务失败。相反,它会继续寻找运行请求的好时机并在那时重试。这将持续到资源超时到期(即用于创建会话的 NSURLSessionConfiguration 对象中的 timeoutIntervalForResource 属性中的值)。该值当前的默认值为一周!
我在开发者论坛找到了上述答案。
在后台会话中可能有帮助的更多详细信息:
另一个好处是,在后台会话中,我们为您监控网络和电源环境。这意味着我们会为您提供网络可达性和连接性等内容,因此您根本不必使用可达性 API。在我们知道服务器可以访问之前,我们不会尝试建立连接。同样,如果用户正在执行下载并退出 Wi-Fi,通常该任务会因传输错误而失败。但是,在后台会话中,我们实际上会自动从中恢复并重试,如果下载可恢复,则从中断处恢复。而且您不会听到该错误。
| 归档时间: |
|
| 查看次数: |
855 次 |
| 最近记录: |