我有一个关于Alamofire及其与后台任务配置的SessionManager的行为的问题。我正在使用它在后台上传视频。链接背景任务Alamofire
步骤一:将视频上传:
这部分是标准的,但是,当上传完成后:
步骤二:完成上传:
我需要发送一个DELETE请求到服务器让它知道视频上传已完成。如果成功,响应将包含新上传的视频的位置标题。
第三步添加视频元数据:
有了这个位置,我需要PATCH请求视频元数据:标题和说明。
所以我的问题是关于覆盖会话管理器委托关闭。我可以覆盖sessionDidFinishEventsForBackgroundURLSession
和taskDidComplete
,当我完全结束后台时,我需要调用系统completionHandler,将其作为SessionManager上的一个属性存储...因此,何时/应在哪里触发DELETE请求,然后何时/我应该在哪里发起PATCH请求?
我应该创建3个不同的后台会话配置标识符,以便我可以识别它们并确保按正确的顺序链接它们吗?因为显然我不能在封闭中说:第一次你被请求解雇了,但第二次解雇了这个请求? 2的哪个关闭是完成整个过程并调用系统completionHandler的正确方法?我不确定这是否正确,因为我将与Alamofire上传响应处理程序不同步。
另外我想知道Alamofire响应处理程序。如果应用程序一直在前台?我会简单地使用响应处理程序将alamofire请求链接在一起?但如果应用程序终止并在后台运行,这些处理程序还会在哪里?
任何有识之士将不胜感激。我意识到这里有很多事情要做,苹果前夕限制后台任务,我只是想知道这是否可能,如果是的话,如何去做呢?
通过将其分为具有段落的部分使其更具可读性。 –