2011-03-29 182 views
0

我正在开发聚合饲料的应用程序。这些供稿在服务器上(并通过网站更新)。我的应用程序必须经常请求此服务器,以收集新的更新。 对服务器的每个请求都包含用户想要的提要列表。此外,即使应用程序处于非活动状态(背景模式),也必须执行这些更新。保持循环HTTP请求异步

在跳入代码之前,我想知道哪个架构最好。

我计划有下列之一:

  1. 的NSTimer中的appDelegate didFinishLaunching
  2. 的NSTimer多次触发它采用ASIHTTPRequest请求服务器
  3. 如果一个新的请求被触发的情况下而前一个没有完成,前一个被取消

我有这方面的一些问题:

  • 根据你,这是一个合适的架构?
  • 应用程序在后台后,难以继续循环吗? (我不是很熟悉怎么做 - 但我正在阅读IPhone mutlitasking /线程指南)
  • 我应该为所有目的创建一个专用线程吗?为什么?

卡里姆

回答

0

如果应用程序是背景,则用户无法使用您的供稿。期。

但是,您可以使用推送通知来推送(相当频繁且不显眼的,如果您喜欢的话)重要更改。您可以显示徽章,通知等。

如果您的用户再次打开该应用程序,则只需获取该提要即可。如果您的Feed速度很快(而且应该是),那么用户很难注意到。

我没有看到这里需要进行持续背景轮询。一切都可以通过一点点开始轻松解决;-)

更新:回答你的问题;您的方法最多只能运行10分钟(您可以向系统询问一些背景时间)。在那10分钟后,你必须有一个计划B(在我看来,这应该是你的计划A)。

+1

好吧!我不知道多余的时间限制在10分钟以内。我想我可以在第一个10分钟之后多加10分钟,并且一次又一次... 我会挖掘推送方式......听起来更复杂(代码说)实现,但更强大。 – iwalktheline 2011-03-29 15:06:00

0

Backgrounding iOS中是非常有限的。您可以在后台播放音乐,获取最新的位置信息,并接听voip电话。你也可以设置本地通知,这样如果你正在创建一个闹钟应用程序,那么它可以是后台。

但我不认为你能够触发http请求来不断更新你的应用使用的数据。不断更新通过http也可能不明智,因为它会降低电池电量。

+0

好的,感谢您的电池提示......使用**推送通知**肯定会更好。我会挖掘它 – iwalktheline 2011-03-29 15:09:09