Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当ios 8+;应用程序已被用户备份_Ios_Swift - Fatal编程技术网

当ios 8+;应用程序已被用户备份

当ios 8+;应用程序已被用户备份,ios,swift,Ios,Swift,我花了很多时间研究这些选项,但仍然不是100%清楚,所以我想寻求一些指导 情景是这样的: 用户通过iOS应用程序向我们的后端服务器提交HTTPS请求以获取某些数据 根据数据的不同,第一个(唯一的)请求可能需要很长时间。比如说,10分钟以上(我知道这让人震惊) 当有效负载最终变得可用并通过HTTPS请求返回时,我们希望使用它在后台更新UI 这里的假设是,用户在等待数据到达时已经移动到另一个应用程序(并且假设他们没有终止该应用程序) 是否可以通过iOS 8+API处理此问题,而不必在后台强制/杀

我花了很多时间研究这些选项,但仍然不是100%清楚,所以我想寻求一些指导

情景是这样的:

  • 用户通过iOS应用程序向我们的后端服务器提交
    HTTPS
    请求以获取某些数据

  • 根据数据的不同,第一个(唯一的)请求可能需要很长时间。比如说,10分钟以上(我知道这让人震惊)

  • 当有效负载最终变得可用并通过
    HTTPS
    请求返回时,我们希望使用它在后台更新UI

这里的假设是,用户在等待数据到达时已经移动到另一个应用程序(并且假设他们没有终止该应用程序)

是否可以通过iOS 8+API处理此问题,而不必在后台强制/杀死应用程序

我们可以用后台任务为例吗

var backgroundTask: UIBackgroundTaskIdentifier

xxx.beginBackgroundTaskWithName...

在测试一些代码块之前,我们只想看看是否有人(a)已经这样做了,和/或(b)我们是否朝着正确的方向前进


谢谢您的帮助。

您应该重新考虑您的web服务,这可能需要大约10分钟的时间来处理。如果您无法优化服务器任务处理时间,那么下面的一个想法可能会对您有所帮助

  • 您可以将一个请求划分为多个请求,以减少处理时间并以更快的方式获得响应

  • 当应用程序完成其任务时,您的服务器应向应用程序发送通知。这样应用程序就会知道任务已经完成

我不知道为什么在应用程序处于后台模式时要尝试更新UI,当用户从后台模式进入前台模式时,可以尝试更新UI

请检查哪个显示为长时间运行任务的示例。它使用空白音频播放来保持应用程序后台任务的活跃。

您可以使用“后台提取”功能。
出于学习目的,您可以参考此

谢谢您的提示。不幸的是,对于第一次加载数据的服务器延迟,我们无能为力。是时候写一些测试了。。