如果某个应用依赖于后台获取,并且如果获取的数据不为空,则需要进行一些处理,这样做是否有意义:
1)使用后台NSURLSession获取数据(使用backgroundSessionConfigurationWithIdentifier)
2)处理后台任务中的数据(使用beginBackgroundTask)
由于系统提供30秒完成后台提取,因此似乎真的不需要#1或#2。文档(https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html)没有明确说明这些技术是否可以合并,所以我只是寻求确认。
答案 0 :(得分:3)
好吧,经过一些挖掘背景后,我想我至少可以部分回答我自己的疑问。
使用后台配置的NSURLSession进行后台提取
在后台获取期间,该应用只需30秒即可完成下载。如果整个 下载流程需要的时间少于此限制,使用起来很好 默认URLSession(没有后台配置)。
但是,如果加载的资源很大,那就非常有意义了 花费30秒(或更少)准备和启动 具有后台配置的URLSession。配置完成后,您的 NSURLSession对象将无缝切换下载 任务到系统,以便资源转移不会成为主题 完成限制为30秒。
使用后台任务进行背景提取