在使用配置为backgroundSessionConfiguration的NSURLSession上载文件后,是否可以运行代码

时间:2013-11-15 10:28:30

标签: ios iphone nsurlsession nsurlsessionconfiguration

我喜欢在backgroundSessionConfiguration中使用NSURLSession和方法:

  

uploadTaskWithRequest:FROMFILE:

但我需要在上传后运行一些代码来选择下一个文件。选中后,我想再次启动NSURLSession以使用uploadTaskWithRequest上传它:fromFile:method

所以递归上传一堆文件

你知道这是否可能吗?

1 个答案:

答案 0 :(得分:1)

简短的回答是肯定的,这是可能的。你有30秒的时间来做这件事。

  1. 您运行的代码是什么,如果应用程序在后台重新启动,您必须确保它运行。处理内存中被丢弃的所有内容并重新初始化它们。这是因为当你的应用程序在后台时,如果用户正在运行其他内存繁重的应用程序,你的应用程序将因内存压力而被杀死。但是,在NSURLSession任务完成后,内存压力的终止仍然会导致应用程序在某个时刻醒来。

  2. 我不推荐它。根据我的经验,链接上传请求一次一个,因为这是非常无效的,因为你正在等待每次上传你的应用程序唤醒一次。唤醒应用程序是昂贵的,并且根本不会经常或可靠地发生。这取决于用户的使用行为而不是您上传的状态。

  3. 我的建议是将NSURLSession配置配置为串行(如果您希望每个主机一次处理一个任务,我认为如果他们连接到不同的主机,您实际上不能序列化任务。)然后提交所有您的上传任务立即让nsnetworkd负责安排并提交它们。根据我的经验,这个数量级更可靠,速度更快。

    希望有所帮助。