我需要按顺序下载文件。目前,我可以在应用程序处于前台时执行此操作。
以下是我使用的逻辑。
URLSession:task:didCompleteWithError:
恢复下一个。 setTaskDidCompleteBlock
中创建下一个,依此类推。它仅完成第一个任务,并且在setTaskDidCompleteBlock
内部创建任务时该 session 崩溃(这仅在以后台模式运行时才会发生,因为前台可以正常工作)。如果您绝对需要按顺序运行这些请求,则建议不要先实例化所有这些任务,而是一次实例化一个任务,仅在上一个任务完成时实例化下一个任务。
但是,我们必须认识到,您需要为顺序运行请求付出巨大的性能损失。 (并且使用后台 session 时,这个问题将被放大。)如有可能,请查看是否可以更改请求以同时运行。显然,如果您需要一个输出才能创建对另一个请求的输出,则很麻烦(或者至少在重构服务器代码之前),但这显然不是问题所在(因为您创建了所有请求)面前)。如果出于人为原因而执行此顺序请求过程(例如,代码正在填充数组,并且您希望按顺序进行),则可能需要重新设计实现以消除此人为约束。
关于ios - NSURLSessionDownloadTask在后台自动恢复所有任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31993764/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |