【问题标题】:iOS: Does force quitting the app disables background upload using NSURLSession?iOS:强制退出应用程序是否会禁用使用 NSURLSession 的后台上传?
【发布时间】:2013-12-08 04:41:50
【问题描述】:

问题在于 NSURLSession 和 NSURLSessionUploadTask。

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

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

【问题讨论】:

    标签: ios cocoa-touch nsurlsession


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 这非常重要且很有帮助——但您指向“文档”的链接只是指向 Apple UIKit 文档的主要入口点——这让读者可以尝试挖掘并查找相关信息。如果您在文档中找到相关段落 - 您能否将链接更新为更直接?
      猜你喜欢
      • 1970-01-01
      • 2015-11-01
      • 2012-11-03
      • 2023-03-08
      • 2013-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多