NSUrlSession暂停并恢复设备锁定问题

时间:2017-02-17 08:28:44

标签: ios objective-c iphone nsurlsession

我使用NSURLSession的多部分表单数据将文件上传到服务器。当应用程序进入后台时,我想暂停请求并在应用程序再次进入前台时恢复。所以我只需[session suspend][session resume]。当应用程序仅在后台运行时,此功能正常。但是如果设备被锁定,当回到前台并尝试恢复时,我会收到网络连接丢失错误。我知道当设备被锁定时,所有打开的套接字都会被关闭,因此会出现问题,但有没有办法让这项工作无需从头开始上传?

2 个答案:

答案 0 :(得分:3)

您应该在应用程序转到后台之前将前台会话切换到后台会话,然后无需暂停它。操作系统将在后台(最终)上传您的文件。

答案 1 :(得分:1)

不幸的是,根据documentation,您需要使用文件来执行后台上传。

来自"背景转移注意事项":

  

仅支持从文件上传任务(从数据对象上传或在程序退出后流将失败)。

(除此之外,我们无法保证您的应用何时或为何会被终止。尝试单独避免设备锁定是不够的;您可以通过其他方式终止您的应用。)< / p>