【问题标题】:NSUrlSession suspend and resume issue on device lockNSUrlSession 挂起和恢复设备锁定问题
【发布时间】:2017-02-17 08:28:43
【问题描述】:

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

【问题讨论】:

    标签: ios objective-c iphone nsurlsession


    【解决方案1】:

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

    【讨论】:

    • 这里的问题是需要后台NSUrlSession直接从文件上传,但是由于我们使用多部分表单数据,我们必须进行暂停/恢复。
    • 保存到文件中? :D
    • 问题是服务器限制,而不是客户端。
    • 什么样的服务器约束不允许您将多部分请求保存到文件中并上传?有什么区别?
    • 问题是服务器保持原样,此时我们无法改变它的工作方式。
    【解决方案2】:

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

    来自“后台传输注意事项”:

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

    (除此之外,无法保证您的应用何时或为何会终止。仅尝试避免设备锁定是不够的;您的应用可能会通过多种其他方式终止。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-14
      • 2016-12-05
      • 1970-01-01
      • 2015-12-20
      相关资源
      最近更新 更多