首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSUrlSessionDownloadTask - didCompleteWithError当进入背景

NSUrlSessionDownloadTask - didCompleteWithError当进入背景
EN

Stack Overflow用户
提问于 2014-09-11 12:46:02
回答 1查看 2.5K关注 0票数 8

当我通过按power按钮强制设备进入睡眠模式时,我的后台任务通过调用带有错误的委托方法didCompleteWithError而停止:

手术无法完成。不允许操作

如何将我的NSURLSession配置为即使在睡眠模式下也可以继续下载?

有可能吗?如果没有,我有什么选择?我需要下载一个300 in的文件,所以在下载结束之前,应用程序将进入睡眠模式。

这是我的会议的创举:

代码语言:javascript
复制
static NSURLSession *backgroundSession;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
   backgroundSession = [NSURLSession sessionWithConfiguration:
                       [NSURLSessionConfiguration backgroundSessionConfiguration:
                       @"com.myapp.mytask"] delegate:self.
                       myDelegate delegateQueue:self.myQueue];
});

NSURLSessionDownloadTask *task = [backgroundSession downloadTaskWithRequest:
                                  self.urlRequest];
[task resume];
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-11 14:11:50

问题是数据保护功能被激活。启用该功能后,所有文件默认都是用NSFileProtectionComplete存储的,即使是NSURLSession用来下载的临时文件也是如此。

默认的保护级别是完全保护,在这种保护中,当设备被锁定时,文件是加密和不可访问的。您可以通过编程方式设置应用程序创建的文件的保护级别,如iOS应用程序编程指南中的“使用磁盘加密保护数据”中所描述的那样。

在该文件上激活NSFileProtectionComplete后,当设备被锁定时,您无法访问它。

我不确定临时下载文件是否可以配置为不使用数据保护,这似乎没有被NSURLSession公开。

来源:App Distribution Guide

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25787822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档