即使用户杀死应用程序,NSURLSessionDownloadTask 也会继续下载

Posted

技术标签:

【中文标题】即使用户杀死应用程序,NSURLSessionDownloadTask 也会继续下载【英文标题】:NSURLSessionDownloadTask continue downloading even if user kills the App 【发布时间】:2016-02-01 14:30:05 【问题描述】:

Background Fetch Utility 中,当应用处于后台、挂起或未运行状态时会发生数据轮询。如果它被挂起,系统会唤醒它以运行后台任务。如果它没有运行,应用程序将在后台启动。因此,系统会唤醒我的应用并自动拉取数据。

但是,我的要求有所不同,但有点匹配。我不知道如何将两者联系起来。我正在使用NSURLSessionDownloadTask 下载文件,它会在下次启动时恢复,完全没有问题。但是,即使用户退出应用程序,我的下载也应该继续。我知道Background FetchNSURLSessionDownloadTask 是完全不同的东西,但我真的不知道如何实现这一目标?

可行吗?如果是,我该怎么做?

【问题讨论】:

【参考方案1】:

一旦应用被杀死,什么都不会发生。不执行任何代码。我们可以开始下载进度的唯一时间是后台获取,并且仅在操作系统确定的时间发生。

Background Fetch Utility 只是唤醒 App 片刻,操作系统给了我们有限的时间(10 秒)来通过请求服务器来执行更新数据之类的任务。我们的 App 多久唤醒一次? — 该时间可能由操作系统或我们定义。

结论: App被杀后无法继续下载。我们可以使用Background Fetch Utility 在 10 秒的时间范围内定期下载文件。但是,无法在后台连续下载..

【讨论】:

以上是关于即使用户杀死应用程序,NSURLSessionDownloadTask 也会继续下载的主要内容,如果未能解决你的问题,请参考以下文章

即使应用程序被杀死,位置服务也不会停止

Firebase 云消息服务 - 即使应用程序被杀死也能接收通知

即使应用程序被杀死,也要在特定时间调用方法

即使在杀死并重新启动应用程序后,如何在本机 iOS 中下载音频文件?

当应用被用户杀死时,工作管理器不工作。为啥?

即使应用程序被杀死/终止,位置更新