iOS上的长时间运行请求

时间:2016-06-07 10:03:01

标签: ios networking background nsurlsession long-running-processes

我正在开发一个应用程序,它对服务器的请求可能会持续很长一段时间,想想10到30分钟。我认为,毫无疑问,用户将在请求执行期间进入后台,这是非常安全的。

我已经使用后台任务正常工作,但由于它们只给你3分钟,请求会快照;不是我的用例中允许的东西。

我已经阅读了后台模式以及可能使用下载和上传任务,但我的用例不符合其中任何一项。它是一个很大的JSON请求/响应。

我想到的一件事就是将JSON保存到文件中并自行发送文件。这应该符合NSURLSession支持的后台下载。

有没有人知道另一种方式?所以我不必改变请求/响应结构。

提前致谢!

1 个答案:

答案 0 :(得分:1)

这种情况应该按照发送“作业”请求的方式处理,该请求基本上立即返回一个令牌,只是在服务器上安排/启动活动。然后,应用程序可以请求该令牌的结果,以确定作业是否完整并获取数据。

你不会在背景中检查,或者不会定期检查 - 你会检查应用程序何时打开或者可能使用后台刷新。

更好的方法是让服务器向用户/设备发送推送通知,可能是内容可用通知,因此应用程序在知道数据准备好之前不需要发出请求。