【发布时间】:2017-09-07 17:46:20
【问题描述】:
我有一个关于 Alamofire 及其在为后台任务配置的 SessionManager 中的行为的问题。我正在使用它在后台上传视频。
第一步:上传视频:
但是,当上传完成时,这部分是标准的:
第二步:完成上传:
我需要向服务器发送一个 DELETE 请求,让它知道视频上传已完成。如果成功,响应将包含新上传视频的位置标头。
第三步添加视频元数据:
有了这个位置,我需要 PATCH 请求视频元数据:标题和描述。
所以我的问题是关于覆盖 Session Manager 委托闭包。我可以覆盖sessionDidFinishEventsForBackgroundURLSession 和taskDidComplete,当我完全完成后台操作时,我需要调用系统完成处理程序,我将其作为属性存储在 SessionManager 上......所以我应该何时/在哪里触发 DELETE 请求然后我应该何时/在哪里触发 PATCH 请求?
是否应该创建 3 个不同的后台会话配置标识符,以便识别它们并确保以正确的顺序链接它们?因为显然我不能在闭包中说:第一次你被称为关闭这个请求,但是第二次关闭这个请求?并且 2 的哪个闭包是完成整个过程并调用系统完成处理程序的正确闭包?我不确定这是否正确,因为我将与 Alamofire 上传响应处理程序不同步。
我还想知道 Alamofire 响应处理程序。如果应用程序一直在前台?我会简单地使用响应处理程序将 alamofire 请求链接在一起吗?但是如果应用程序终止并在后台运行,这些处理程序还会存在吗?
这里的任何见解将不胜感激。我意识到这里发生了很多事情,Apple eve rate 限制了后台任务,我只是想知道这是否可行,如果可以,该怎么做?
【问题讨论】:
-
用段落将其分成几部分使其更具可读性。
标签: ios networking alamofire background-process