iOS:强制退出应用程序是否禁用使用NSURLSession的后台上传?

时间:2013-11-23 06:42:20

标签: ios cocoa-touch nsurlsession

问题在于 NSURLSession NSURLSessionUploadTask

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

所以我的问题是,当用户强制退出应用程序时,iOS是否会立即取消 NSURLSessionUploadTask ?出于某种原因,我至少会期待对应用程序的错误回调,但没有任何反应。

2 个答案:

答案 0 :(得分:17)

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

希望它有助于某人调查同样的事情。

答案 1 :(得分:5)

来自Apple的docs关于后台执行:

  

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