iOS应用程序处于后台时的HTTP连接,如果处于脱机状态则重试

Sco*_*ers 6 objective-c ios ios6

我写了一个基本的位置跟踪应用程序,它将在后台运行.(不只是后台线程,但是当设备很暗时.)我有UIBackgroundModes键设置,这部分很好地将位置写入屏幕.

接下来,我需要处理这些位置.根据位置和其他一些标准,应用程序需要偶尔通过HTTP get或post向服务器发送一些信息.有一些挑战:

  1. 即使应用程序在后台,也需要将消息发送到服务器.

  2. 即使设备在生成消息时处于脱机状态(用户在获取gps位置时通常不在单元格范围内),也需要将消息发送到服务器.当然,消息不必立即发送,但应在设备重新联机时存储和发送消息.

  3. 如果消息没有成为第一次尝试,那么在放弃之前应该重新发送几次.

我正在寻找帮助来规划如何处理这三件事.

该应用程序将针对iOS6 +.

我是一个新的iOS开发者,但我开发了一个非常类似的Android应用程序.我正在寻找一般的建议和策略 - 而不是代码,除非碰巧有一些已经存在.我还不太清楚iOS/Objective C是否已经知道是否已经有类或框架来处理它或帮助解决它的各个方面.我已经看到很多"如何将数据发送到服务器"的例子,这不是我想要的.相反,我想指出哪些类或系统可能有助于管理重试连接/命令,如何在后台处理它等等.此外,警告要注意的问题也很有帮助.非常感谢任何建议.

Art*_*zak 0

首先,您应该在项目中定义后台模式,以便执行后台操作。

阅读这个快速教程

如果您已经执行了此步骤,那么您只需将一些代码添加到 locationManager 的回调方法中即可。如果你想发送数据,那么添加一些行来向服务器执行请求。您应该避免经常执行请求。

如果请求失败,您可以将数据存储在数组或某种队列中。每次执行发送操作时,您可以尝试发送整个保存的数据。