NSURLSession后台配置在macOS上有所帮助

时间:2017-04-08 20:05:03

标签: macos nsurlsession nsurlsessionconfiguration

在iOS上,使用后台配置初始化NSURLSession至关重要,以便在应用程序为后台时获得上传和下载的好处:

Swift 2中的示例:

let configuration = NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier("SomeSessionName");
NSURLSession(configuration: configuration, delegate: self, delegateQueue: nil);

在OSX 10.10+上,使用后台会话配置是否有任何好处,即使应用程序当前不在焦点,也可以继续上传或下载?根据我的经验,默认会话配置不容易受到错误的影响:

let configuration = NSURLSessionConfiguration.defaultSessionConfiguration();
NSURLSession(configuration: configuration, delegate: self, delegateQueue: nil);

1 个答案:

答案 0 :(得分:4)

在OS X上,即使用户退出应用程序后,后台下载任务仍会继续运行(只要用户不强行退出应用程序,IIRC)。与iOS不同,它不会在下载完成后在后台重新启动您的应用程序;您的应用程序将在用户手动重新启动应用程序并且您的应用程序与现有的命名后台会话重新关联后,发现下载已完成。

因此,在OS X上使用它们的最常见原因是用于下载大型数据集的游戏。您可以在后台启动下载并让用户继续玩游戏(没有扩展级别或其他),即使用户退出游戏,下载也会继续,但下次用户运行游戏时,下载将可用于安装。

也就是说,它在OS X上的重要性要小得多,因为你可以选择分支一个继续运行和下载的子进程。