gpt4 book ai didi

当 HTTP 请求命中并且应用程序突然进入后台时,iOS 12 URLSession 中断

转载 作者:行者123 更新时间:2023-11-28 05:48:38 25 4
gpt4 key购买 nike

对于所有 iOS 版本 < 12,它工作正常。我正在使用基本 URLSession 在我的应用程序中进行测试(iOS ~> 12.x),还尝试使用 Alamofire。

测试步骤:

1.点击任何 HTTP/API 调用。

2. 立即点击主页按钮。

它来了一段时间后就来了

2018-12-14 13:43:46.968901+0530 NewReader[15364:4847228] Task <519A3F27-90DA-439F-8711-B07EFA62E823>.<1> load failed with error Error Domain=NSPOSIXErrorDomain Code=53 "Software caused connection abort" UserInfo={_NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <519A3F27-90DA-439F-8711-B07EFA62E823>.<1>, _kCFStreamErrorDomainKey=1, _NSURLErrorRelatedURLSessionTaskErrorKey=(
"LocalDataTask <519A3F27-90DA-439F-8711-B07EFA62E823>.<1>"
), _kCFStreamErrorCodeKey=53} [53]

我不知道其他应用程序如何处理这个问题。还提出了问题here

让我知道修复或解决方法。

P.S.:我已经尝试过 DispatchDelay,但它不起作用。

最佳答案

您需要为 URLSession 配置后台功能。情况一直如此,但之前进入后台时它会继续工作一小段时间(通常最多 3 分钟)。它可能在最近的更新中变得更加严格,或者您的请求花费的时间超过了可用时间。

首先,您需要在功能选项卡中启用后台模式。

下面是一些示例代码,展示了如何为后台设置 URLSession

private lazy var bgSession: URLSession = {
let config = URLSessionConfiguration.background(withIdentifier: Constant.sessionID.rawValue)
//config.isDiscretionary = true
config.sessionSendsLaunchEvents = true
return URLSession(configuration: config, delegate: self, delegateQueue: nil)
}()

代码示例和更多信息可从以下 article 获得

关于当 HTTP 请求命中并且应用程序突然进入后台时,iOS 12 URLSession 中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53775848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com