iPhone后台网络连接由计时器

时间:2011-08-19 11:34:17

标签: iphone objective-c

您好我想每隔5分钟从后台调用webservice,并根据我想向用户显示通知的响应。有没有办法在iOS 4上执行此操作? 我认为可以使用CLLocation管理器。 请建议我如何做到这一点。

谢谢!

2 个答案:

答案 0 :(得分:1)

不是,是的,当您的应用被推到后台时,所有NSTimers都无效,您的应用类型将处于暂停模式。

只有三种类型的应用可以在后台运行(音频,voip和基于位置)。 使用CLLocationManager时,您的应用只会收到重大更改。因此,每隔5分钟就无法做到这一点。

答案 1 :(得分:1)

将背景模式用于除了设计之外的其他任何内容,这是让您的应用被拒绝的明智之举。

由于您想要定期访问Web服务,为什么不从服务器执行此操作。

  1. 应用程序首次启动时注册远程通知设备
  2. 当您的应用收到通知后,即将转到后台,使用从步骤1返回的设备令牌ping您的Web服务器
  3. 让您的网络服务器每五分钟调用一次外部网络服务
  4. 收到相应的回复后,使用设备令牌
  5. 向设备发送远程通知
  6. 当用户确认通知并打开您的应用时,让应用从服务器或外部网络服务下载所需的信息
  7. 如果您提供有关应用环境的更多信息,可以进一步改进此解决方案。