我喜欢在backgroundSessionConfiguration中使用NSURLSession和方法:
uploadTaskWithRequest:FROMFILE:
但我需要在上传后运行一些代码来选择下一个文件。选中后,我想再次启动NSURLSession以使用uploadTaskWithRequest上传它:fromFile:method
所以递归上传一堆文件
你知道这是否可能吗?
答案 0 :(得分:1)
简短的回答是肯定的,这是可能的。你有30秒的时间来做这件事。
您运行的代码是什么,如果应用程序在后台重新启动,您必须确保它运行。处理内存中被丢弃的所有内容并重新初始化它们。这是因为当你的应用程序在后台时,如果用户正在运行其他内存繁重的应用程序,你的应用程序将因内存压力而被杀死。但是,在NSURLSession任务完成后,内存压力的终止仍然会导致应用程序在某个时刻醒来。
我不推荐它。根据我的经验,链接上传请求一次一个,因为这是非常无效的,因为你正在等待每次上传你的应用程序唤醒一次。唤醒应用程序是昂贵的,并且根本不会经常或可靠地发生。这取决于用户的使用行为而不是您上传的状态。
我的建议是将NSURLSession配置配置为串行(如果您希望每个主机一次处理一个任务,我认为如果他们连接到不同的主机,您实际上不能序列化任务。)然后提交所有您的上传任务立即让nsnetworkd负责安排并提交它们。根据我的经验,这个数量级更可靠,速度更快。
希望有所帮助。