保持循环HTTP请求异步
我正在开发聚合饲料的应用程序。这些供稿在服务器上(并通过网站更新)。我的应用程序必须经常请求此服务器,以收集新的更新。 对服务器的每个请求都包含用户想要的提要列表。此外,即使应用程序处于非活动状态(背景模式),也必须执行这些更新。保持循环HTTP请求异步
在跳入代码之前,我想知道哪个架构最好。
我计划有下列之一:
- 的NSTimer中的appDelegate didFinishLaunching
- 的NSTimer多次触发它采用ASIHTTPRequest请求服务器
- 如果一个新的请求被触发的情况下而前一个没有完成,前一个被取消
我有这方面的一些问题:
- 根据你,这是一个合适的架构?
- 应用程序在后台后,难以继续循环吗? (我不是很熟悉怎么做 - 但我正在阅读IPhone mutlitasking /线程指南)
- 我应该为所有目的创建一个专用线程吗?为什么?
卡里姆
如果应用程序是背景,则用户无法使用您的供稿。期。
但是,您可以使用推送通知来推送(相当频繁且不显眼的,如果您喜欢的话)重要更改。您可以显示徽章,通知等。
如果您的用户再次打开该应用程序,则只需获取该提要即可。如果您的Feed速度很快(而且应该是),那么用户很难注意到。
我没有看到这里需要进行持续背景轮询。一切都可以通过一点点开始轻松解决;-)
更新:回答你的问题;您的方法最多只能运行10分钟(您可以向系统询问一些背景时间)。在那10分钟后,你必须有一个计划B(在我看来,这应该是你的计划A)。
Backgrounding iOS中是非常有限的。您可以在后台播放音乐,获取最新的位置信息,并接听voip电话。你也可以设置本地通知,这样如果你正在创建一个闹钟应用程序,那么它可以是后台。
但我不认为你能够触发http请求来不断更新你的应用使用的数据。不断更新通过http也可能不明智,因为它会降低电池电量。
好的,感谢您的电池提示......使用**推送通知**肯定会更好。我会挖掘它 – iwalktheline 2011-03-29 15:09:09
好吧!我不知道多余的时间限制在10分钟以内。我想我可以在第一个10分钟之后多加10分钟,并且一次又一次... 我会挖掘推送方式......听起来更复杂(代码说)实现,但更强大。 – iwalktheline 2011-03-29 15:06:00