iOS NSURLRequest uploadTaskWithRequest 超时仅在后台 iOS 13 中



我正在使用带有backgroundSessionConfigurationWithIdentifier的AFURLSessionManager上传视频 到服务器。我正在将视频分成块并执行uploadTaskWithRequest fromFile,每个请求都依赖于前一个请求,这意味着我等待服务器的响应来发送下一个块。

我目前的实现允许在前台和后台执行此操作,这在 iOS 12 上效果非常好,但 iOS 13 存在问题。当我的应用程序在服务器成功响应几次后进入后台时,uploadTaskWithRequest fromFile突然开始接收"请求超时"。似乎对从后台发起的请求数量存在某种限制器。有人知道这一点吗?有人可以给出一些关于如何解决这个问题的指导吗?

提前致谢

我认为您的问题与 NSURLSession 的后台会话速率限制器有关,在 iOS 中有一个速率限制器,以防止滥用后台会话并保持您的应用程序在后台持续工作。

您可以创建并恢复任务,但在此延迟到期之前不会执行该任务。

在这里,您可以找到有关速率限制器及其工作原理的详细信息。

每当用户将应用置于前台时,延迟都会重置为 0。如果系统未恢复或重新启动应用的延迟期过后,它也会重置。

最新更新