gpt4 book ai didi

ios - NSURLSessionDownloadTask 在后台自动恢复所有任务

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:13:18 27 4
gpt4 key购买 nike

我需要按顺序下载文件。目前我可以在应用程序处于前台时执行此操作。

以下是我使用的逻辑。

  1. 创建所有下载任务。

  2. 一次恢复一个,当前完成后从 URLSession:task:didCompleteWithError: 恢复下一个。

此逻辑在应用程序处于前台时有效,但一旦应用程序开始在后台运行(通过崩溃)并且我们在下载完成之前再次运行应用程序所有任务状态已更改为恢复并且所有任务都在同时下载.

这是预期的行为还是我在后台模式下连续订购它所缺少的任何东西?

编辑:我通过一个一个地创建下载任务来检查。完成第一个任务后,在 setTaskDidCompleteBlock 中创建下一个任务,依此类推。它只完成第一个任务,并且在 setTaskDidCompleteBlock 中创建任务时 session 崩溃之后(这仅在后台模式下运行时发生,因为前台工作正常)。

这是我的崩溃日志屏幕截图:

drive.google.com/file/d/0B9jFCUPsPtV6YW5zbTJrQ0pQYlk/view?usp=sharing

drive.google.com/file/d/0B9jFCUPsPtV6UkEwOURpZmZYcEU/view?usp=sharing

如有任何帮助,我们将不胜感激。

最佳答案

如果您绝对需要按顺序运行这些请求,我建议不要预先实例化所有这些任务,而是一次实例化它们,仅在前一个任务完成后才实例化下一个任务。

但我们必须认识到,您会因为按顺序运行请求而付出显着的性能损失。 (当使用后台 session 时,这个问题会被放大。)如果可能的话,看看您是否可以更改您的请求以同时运行。显然,如果您需要一个的输出以便为另一个创建请求,那么您就会陷入困境(或者至少在您重构服务器代码之前),但这显然不是这里的问题(因为您创建了所有请求正面)。如果您出于人为原因执行此顺序请求过程(例如,代码正在填充一个数组并且您希望按顺序排列),那么您可能需要重新设计实现以删除此人为约束。

关于ios - NSURLSessionDownloadTask 在后台自动恢复所有任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31993764/

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