【发布时间】:2019-07-25 06:52:10
【问题描述】:
我来了
Error Domain=NSURLErrorDomain Code=-997 "失去与后台传输服务的连接"
当我在启动后台下载过程后锁定屏幕时。我正在使用 Alamofire,但我认为这也会发生在常规 URLSession 上。如果我软关闭应用程序,下载将继续工作,但一旦我锁定我的设备,它就会开始抛出此错误。
以下是代码的相关部分:
private(set) lazy var alamoSessionManager: SessionManager = {
let config = URLSessionConfiguration.background(withIdentifier: "MySession")
config.isDiscretionary = true
config.sessionSendsLaunchEvents = true
config.shouldUseExtendedBackgroundIdleMode = true
return Alamofire.SessionManager(configuration: config)
}()
let route = buildRouter()
alamoSessionManager.request(url, method: route.method, parameters: route.parameters, encoding: JSONEncoding.default, headers: route.headers)
我查看了控制台以查看是否有任何守护程序崩溃但找不到任何守护程序。锁定屏幕后我立即看到三个错误:
BKLogEvent:找不到 CombinedSequence 属性
任务 . 以错误结束 - 代码:-999
任务 . 加载失败,错误域=NSURLErrorDomain 代码=-997“与后台传输服务的连接丢失” UserInfo={NSErrorFailingURLStringKey=, NSErrorFailingURLKey=, _NSURLErrorRelatedURLSessionTaskErrorKey=, _NSURLErrorFailingURLSessionTaskErrorKey=, NSLocalizedDescription=丢失连接到后台传输服务} [-997]
error._userInfo 是这样的:
▿ Optional<AnyObject>
▿ some : 5 elements
▿ 0 : 2 elements
- key : NSErrorFailingURLStringKey
- value : https://www.myweb.com/api
▿ 1 : 2 elements
- key : NSErrorFailingURLKey
- value : https://www.myweb.com/api
▿ 2 : 2 elements
- key : _NSURLErrorRelatedURLSessionTaskErrorKey
▿ value : 2 elements
- 0 : BackgroundDataTask <C39E-2FC73>.<27>
- 1 : LocalDataTask <C39E-2FC73>.<27>
▿ 3 : 2 elements
- key : _NSURLErrorFailingURLSessionTaskErrorKey
- value : BackgroundDataTask <C39E-2FC73>.<27>
▿ 4 : 2 elements
- key : NSLocalizedDescription
- value : Lost connection to background transfer service
【问题讨论】:
标签: ios swift alamofire nsurlsession nsurlsessiondownloadtask