在应用程序被杀死后在应用程序启动时恢复未完成的多部分/表单数据上传任务

Posted

技术标签:

【中文标题】在应用程序被杀死后在应用程序启动时恢复未完成的多部分/表单数据上传任务【英文标题】:Resume Unfinished multipart/form-data Upload Task on App Launch after the app was killed 【发布时间】:2021-05-28 04:42:51 【问题描述】:

我正在制作一个应用程序,我在其中使用 Alamofire 5.2 上传多个图像和视频。上传可能需要很长时间,因为文件大小可能很大并且让用户等待上传不是我想要的。所以我让用户探索应用程序并在后台继续上传。当应用程序处于前台或后台时,上传任务会成功且没有问题。现在,如果用户或操作系统在上传完成之前杀死了应用程序怎么办?想到的解决方案是如果再次启动应用程序,则在我们中断的地方继续上传。我尝试寻找解决方案,但无法真正找到我想要的东西。如果 Alamofire 做不到,那么也许 URLSession 可以做到。如果有人能帮我解决这个问题,我将不胜感激。

【问题讨论】:

developer.apple.com/documentation/foundation/… 【参考方案1】:

如果用户手动终止应用程序,您将无能为力,因为应用程序会立即终止,没有机会记录上传位置。您可能会向后端添加一个 API,以检查是否有上传活动并查看是否可以恢复,但在本地没有什么可做的。

如果操作系统在后台杀死应用程序,那么后台 URLSession 可能会有所帮助。 Alamofire 不支持后台会话,因此您需要手动完成。

【讨论】:

以上是关于在应用程序被杀死后在应用程序启动时恢复未完成的多部分/表单数据上传任务的主要内容,如果未能解决你的问题,请参考以下文章

react native - 应用程序被杀死/未启动时未收到通知

发件人应用程序在被杀死后如何恢复会话?

如何在不杀死未完成的芹菜任务的情况下重新启动heroku应用程序

在某些任务杀手杀死应用程序后如何恢复android应用程序?

应用程序被杀后,广播接收器未调用服务

进程被杀死后恢复状态