iOS该做什么而不是轮询近实时数据?

时间:2011-10-29 23:07:24

标签: iphone ios

我正在开发一款具有实时功能的iPhone(以及后来的Android)应用,即当一个用户发布其他人会看到的内容时(取决于他们在应用中的位置)。

在iOS中实现此功能时,必须牢记网络活动占用大量电池电量。

iOS App Programming Guide表示“仅在需要时连接到外部网络服务器,不要轮询这些服务器。”

应用程序如何才能获得接近实时更新的信息?

4 个答案:

答案 0 :(得分:3)

对于前台应用程序,打开读取套接字,并为可用数据设置异步委托回调。除非您准备好发送新帖子,否则不要向这些套接字发送任何数据。

答案 1 :(得分:2)

您应该使用推送通知服务

http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ApplePushService/ApplePushService.html#//apple_ref/doc/uid/TP40008194-CH100-SW9

这样,您的应用程序就可以充当侦听器,并且可以对带有服务器接收的自定义Payload数据的新Notifications做出反应。即使它在后台运行或根本没有运行。

答案 2 :(得分:1)

请查看Apple Push Notification Service,如WhatsApp等热门应用程序(也是聊天应用程序)所知。

来自文档:

  

当应用程序的新数据到达时,提供者准备和   通过通道向APN发送通知,推送通知   通知目标设备。

答案 3 :(得分:0)

您还可以考虑使用XMPP。查看iOS的https://github.com/robbiehanson/XMPPFramework