4

我正在实例化 aNSURLSession来执行几个这样的后台上传:

  sessionConfiguration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:myIdentifier];

在大多数情况下,一切似乎都正常,但我想知道如果我所做的只是后台上传而不是下载,是否需要在 p.list 中添加后台 Fetch 键?我找不到说明我应该或不应该的文件。特别是在 XCode 5 + 上,我想知道是否在 Capabilities>Background 模式下,我应该启用还是不启用后台获取,如果我所做的只是后台上传,请注意我确实在上传完成后阅读了响应,这可能被视为“下载”。

4

1 回答 1

6

官方指南Background Execution声明了三种类型的后台执行:

  1. Executing Finite-Length Tasks - 使用UIApplication方法
    beginBackgroundTaskWithName:expirationHandler:来执行有限时间的任务。
  2. 在后台下载内容-NSURLSession用于下载内容。您的NSURLSession应用程序提供的在单独的系统级守护程序上运行,完成后由完成处理程序返回应用程序。(你上面提到的实现)
  3. 执行长时间运行的任务- 需要长时间运行的任务在此类别下处理,如音频、voip、位置、下载进程、更新内容。这些类型的任务需要UIBackgroundModesinfo.plist 中提到的特殊键。

所以回答你的问题,你不需要UIBackgroundModes密钥,直到你不属于长期运行的任务类别。

于 2015-03-16T20:50:44.750 回答