首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在应用程序强制退出和应用程序重新启动后恢复NSURLSession下载过程?

如何在应用程序强制退出和应用程序重新启动后恢复NSURLSession下载过程?
EN

Stack Overflow用户
提问于 2015-08-09 12:22:53
回答 3查看 9.1K关注 0票数 18

我实现了NSURLSession,用于从我们的服务器下载相当大的文件。现在,只要我在前台或后台工作,回到应用程序,事务就可以正常工作并完成。

但如果我强制-退出应用程序使用多任务屏幕,并重新打开应用程序。下载过程还没有完成,尽管正如我从docs了解到的,在这里docs的状态应该是:

如果iOS应用程序被系统终止并重新启动,应用程序可以使用相同的标识符来创建新的配置对象和会话,并检索终止时正在进行的传输状态。此行为仅适用于系统正常终止应用程序。如果用户从多任务屏幕终止应用程序,系统将取消会话的所有后台传输。此外,系统不会自动重新启动被用户强制退出的应用程序。用户必须显式地重新启动应用程序,然后才能重新启动

这意味着如果我在强制之前重新启动应用程序--退出应该重新启动,或者它们是?是否有额外的操作,我需要提交,以使这个工作?

更新:I无意中发现了这个项目:https://github.com/Heikowi/HWIFileDownload#force-quit

该条规定:

部队退出 当应用程序被用户杀死后,下载就不会在后台继续。在iOS 7(及更高版本)上,恢复数据将被传回。

这意味着有一种接收简历数据的方法,即使应用程序在后台被用户杀死也是如此。只有项目是用目标C写的,我不明白他们在做什么来实现这个目标。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-05 10:19:35

在部队-退出后:

代码语言:javascript
复制
 NSURLSessionTaskDelegate - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error

当应用程序重新启动时,将调用委托方法。如果可以恢复下载任务,错误对象将包含简历数据:

[error.userInfo objectForKey:NSURLSessionDownloadTaskResumeData]

使用此数据,您可以通过使用以下内容创建NSURLSessionDownloadTask来恢复下载过程:

代码语言:javascript
复制
(NSURLSessionDownloadTask *)downloadTaskWithResumeData:(NSData*)resumeData.

有关这一点的更多信息可以在使用自定义代理的URL会话的生命周期中找到,步骤13。

票数 28
EN

Stack Overflow用户

发布于 2015-08-09 15:01:02

我认为在你的申请被强制退出之后,你应该重新开始。

如果用户终止您的应用程序,系统将取消任何挂起的任务。

当与后台会话相关的所有任务都完成后,系统将重新启动一个终止的应用程序(假设sessionSendsLaunchEvents属性设置为YES,而用户没有强制退出应用程序)。

https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

票数 1
EN

Stack Overflow用户

发布于 2017-04-11 04:29:05

->使用URLSession后台会话下载不停止在all....you不需要显式代码来恢复下载什么的。

https://developer.apple.com/reference/foundation/urlsession

在这个link...if中检查背景会话,您无法获得still...comment me,我将提供详细帮助。

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

https://stackoverflow.com/questions/31904182

复制
相关文章

相似问题

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