是否会在恢复应用后立即启动待处理的NSURLSession后台下载任务?

时间:2013-11-08 23:30:02

标签: cocoa-touch background ios7 nsurlsession

NSURLSession似乎是一个很棒的新API。可悲的是,文档仍然缺乏。

我计划支持NSURLSession背景模式。我读过,如果用户通过Wifi连接,并且剩余电量充足,这些任务只会在Apple守护程序上下载。因此,如果我排队某些任务,并且不满足上述条件,则任务将等待直到它们为止。但是如果用户打开应用程序并且数据丢失会发生什么?尽管缺乏wifi或电池电量不足,待执行的任务是否会执行?我应该取消它们并将它们作为数据任务启动吗?我知道discretionary属性,但是一旦应用程序启动/恢复,后台安排的任务会启动吗?

1 个答案:

答案 0 :(得分:2)

您将从后台恢复,或重新开始。

如果从后台恢复,后台NSURLSession应该完成您排队的任务,只要您“保留/保留”它即可。我的经验是后台会话在前台工作得很好,它们只是有限的(例如没有数据任务)。

如果重新开始,您可以使用您使用的相同配置NSString“重新连接”后台会话,例如

NSURLSessionConfiguration config = 
 [NSURLSessionConfiguration backgroundSessionConfiguration:sameStringHere];

一旦“重新布线”,它应该继续滚动。

同意文档。