iPhone应用程序,在后台应用程序时运行http请求

时间:2010-07-20 15:48:52

标签: iphone background asihttprequest

在我的iPhone应用程序中,我希望在运行时运行多个查询 申请是在后台。 我已经使用ASIHttpRequest来进行查询,但工作正常 现在我试图找到一种在后台触发它们的方法。 在app delegate中,我添加了对发出请求的方法的调用:

[self getItemsFromServer]

getItemsFromServer运行异步请求(在模拟器上我 一旦我把应用程序拿回来,我就看到了这个方法的日志 前景)。 如何使用某种计时器让这种方法每10次运行一次 分钟(我只需要运行4到5次,而不是每10分钟运行一次 它回到前景:-))?

非常感谢,

最诚挚的问候,

吕克

3 个答案:

答案 0 :(得分:2)

iOS4允许您的应用运行X段时间,并授予iOS4授予您请求时间的权限。退房:Completing a Long-Running Task in the Background

具体地,

  

在暂停之前的任何时候,应用程序都可以调用beginBackgroundTaskWithExpirationHandler:方法来询问系统是否有额外的时间在后台完成一些长时间运行的任务。如果请求被授予,并且在任务正在进行时应用程序进入后台,则系统会让应用程序运行一段时间而不是暂停它

答案 1 :(得分:0)

你可能会使用任务完成来做到这一点。在iOS中,您可以将线程标记为完成并为其提供特定的生存时间。这样您就可以再对Web服务器进行一些调用。

查看Executing Code in the Background

答案 2 :(得分:-1)

实际上,在后台特别不允许您进行常规HTTP调用。唯一可以在后台处于活动状态的应用是播放音频,执行位置或正在运行VOIP呼叫的应用。我认为Apple的整体理念背景是应用程序不应该在这些有限的情况下进行“工作”,因为可用资源有限。建议解决此问题的方法是使用(ugh)通知或在应用程序唤醒时进行刷新。 willcodejavaforfood references的文档解释了这一点。