18

问题在于NSURLSessionNSURLSessionUploadTask

我正在将大文件上传到服务器,并注意到当我强制退出应用程序时,整个后台上传就会停止。但是,当应用程序通过 Xcode/调试器运行时开始上传时,即使我通过 Xcode 的“停止”按钮停止运行应用程序,我的上传也会正常完成。我怀疑使用 Xcode 强制退出应用程序会模拟 iOS 系统命令而不是用户操作。

所以我的问题是,当用户强制退出应用程序时,iOS 是否会立即取消NSURLSessionUploadTask ?出于某种原因,我至少希望应用程序出现错误回调,但是什么也没发生。

4

2 回答 2

19

经过大量测试后,我现在可以确认如果应用程序刚刚进入后台,后台任务将正常运行。但是,如果用户手动强制退出应用程序,则 iOS 会取消所有计划的后台任务。因此,下次启动应用程序时,我将使用已取消任务的错误代码获取委托的所有回调。

希望它可以帮助有人研究同样的事情。

于 2013-12-03T17:04:23.923 回答
5

来自 Apple关于后台执行的文档:

如果任务尚未完成且系统终止您的应用程序,系统会自动继续在后台管理任务。 如果用户终止您的应用程序,系统将取消所有待处理的任务。

于 2015-09-03T21:27:05.737 回答