gpt4 book ai didi

ios - 在 iOS App 中处理大量 API 请求(不使用 Alamofire)

转载 作者:行者123 更新时间:2023-11-28 23:47:20 31 4
gpt4 key购买 nike

如何处理应用程序进入前台引发大量请求(最少大约 3-4 个)的状态,因为应用程序需要该信息,然后进入后台?

我尝试的是在应用进入后台时使用 RequestManager 暂停 URLSessionDataTasks,当应用恢复时,恢复那些任务再次。但我认为这不是很好。

有没有标准的方法来解决这个问题?

最佳答案

暂停任务将不起作用,因为如果您的应用因内存不足而被丢弃, session 将不再存在。

最直接的方法是在后台 session 中使用下载任务,然后在下载完成时读取生成的临时文件。后台 session 中的下载和上传任务是应用程序因内存压力而在后台被抛弃时唯一可以幸免的任务类型。

如果您绝对必须避免应用程序在后台时下载(为什么?),您可以在前台或后台 session 中创建下载任务,然后通过调用 cancelByProducingResumeData: 当您的应用进入后台时。您稍后可以通过调用 downloadTaskWithResumeData: 继续请求。

不过,这种方法有一个相当大的警告,即 API 的恢复数据部分没有像后台下载部分那样经过充分的测试。一个恰当的例子:在从第一个测试版到 10.2 的每个 iOS 10 版本中,对简历数据的支持都被完全破坏了。 (有一个相当 horrific workaround ,以防你选择走那条路。)

所以我会推荐第一种方法,除非您有某些契约(Contract)或法律义务不这样做。

关于ios - 在 iOS App 中处理大量 API 请求(不使用 Alamofire),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52454760/

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