0

在我的 iPhone 应用程序中,我想在应用程序处于后台时运行几个查询。我已经使用 ASIHttpRequest 进行查询,效果很好,但现在我尝试找到一种在后台触发它们的方法。在应用程序委托中,我添加了对发出请求的方法的调用:

   [自我 getItemsFromServer]

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

多谢,

最好的祝福,

卢克

4

3 回答 3

2

iOS4 允许您的应用程序运行 X 时间,前提是 iOS4 会授予您请求的时间。查看:在后台完成长时间运行的任务

具体来说,

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

于 2010-08-27T19:35:31.190 回答
0

您可能可以使用任务完成来做到这一点。在 iOS 中,您可以将线程标记为完成并给它一个特定的生存时间。这将使您可以对 Web 服务器进行更多调用。

看看在后台执行代码

于 2010-07-20T16:01:28.423 回答
-1

实际上,您特别不允许在后台进行一般的 HTTP 调用。唯一可以在后台运行的应用程序是播放音频、定位或运行 VOIP 呼叫的应用程序。我相信苹果公司的整体理念是,除了这些有限的情况外,应用程序不应该做“工作”,因为可用的资源是有限的。解决此问题的建议方法是使用(呃)通知,或者在您的应用程序唤醒时进行刷新。willcodejavaforfood 参考的文档解释了这一点。

于 2010-07-20T18:03:04.667 回答