我正在实例化一个NSURLSession
来执行几次后台上传,如下所示:
sessionConfiguration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:myIdentifier];
在大多数情况下,一切似乎都正常,但我想知道如果我所做的只是后台上传而不是下载,我是否需要在 p.list 中添加后台 Fetch 密钥?我找不到说我应该或不应该的文件。特别是在 XCode 5 + 上,我想知道在功能>后台模式下,我是否应该启用或不启用后台提取,如果我所做的只是后台上传,请注意,我确实在上传完成后阅读了响应,这可以被视为"下载"。
官方指南后台执行声明了三种类型的后台执行:
-
执行有限长度任务 - 使用
UIApplication
方法
执行有限beginBackgroundTaskWithName:expirationHandler:
时间任务。 -
在后台下载内容 - 使用
NSURLSession
下载内容。应用提供的NSURLSession
运行在单独的系统级守护进程,完成后,通过以下方式返回应用程序完成处理程序。(您上面提到的实现) -
实现长时间运行的任务 - 需要为其运行的任务长时间,在此类别下处理,如音频,VoIP,位置,下载过程,更新内容。这些类型的任务需要 info.plist 中提到的特殊
UIBackgroundModes
键。
因此,回答您的问题时,您不需要UIBackgroundModes
键,直到您不属于长时间运行的任务类别。