我正在开发一个下载大文件的应用。我已从Apple下载并运行this sample。
每当应用程序暂停或我从Xcode重新运行时,我都没有在日志中看到输出以显示下载进度。
我也看到了this question的答案,但我没有看到如何将代码转换为代码已经在样本中使用的代码之外。
您可以在应用重启后如何协助我的应用连接到后台下载。
答案 0 :(得分:2)
每当应用程序暂停或我从Xcode重新运行时,我都没有在日志中看到输出以显示下载进度。
你也不应该期待。
如果应用暂停,它就不会运行;这就是“暂停”的意思。没有任何记录;你的应用程序处于深度冻结状态。如果你恢复(不从Xcode重新启动应用程序:相反,点击Springboard中暂停的应用程序图标)日志记录也会恢复。下载时你永远不会“脱节”;你刚睡着了。
如果您在应用仍在运行或暂停时从Xcode重新开始测试,系统会将其视为停止后台下载的信号。
那么,在下载过程中,当您的应用实际终止时,您将如何测试会发生什么?测试方法是在设备上运行,并在下载过程中崩溃您的应用。 (IIRC,Apple的示例提供了一个按钮,可以让您这样做。)在这种情况下,后台下载将继续。然后,您可以从设备再次启动应用程序(而不是从Xcode)。你现在不会在Xcode中获得控制台消息,但你将在窗口中获取它们>此设备的设备控制台。
然后您会看到,如果您已正确实施output
,则会调用它。如果您随后重新创建后台会话,则将调用您的任务委托方法。您已与背景会话重新联系。