2017-02-17 74 views
5

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

回答

2

在应用程序转到后台之前,您应该将前台会话切换到后台会话,然后不需要挂起它。您的文件将在后台(最终)由OS上传。

+0

这个问题是需要后台NSUrlSession直接从文件上传,但由于我们使用多部分表单数据,我们必须进行暂停/恢复。 –

+1

将其保存到文件? :D –

+0

问题是服务器限制,而不是客户端。 –

0

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

从“后台传输注意事项”:

只有从上传文件任务支持(从数据对象上载或程序退出后,流会失败)。

(除此之外,不能保证你的应用何时或为什么会被终止。试图避免单独设备锁定是不够的;还有其他方式可能会终止你的应用。