我需要构建一个应用程序来进行实时报告,你能建议一个能够实现实时通信的解决方案吗?我想用这种方法进行长时间的轮询。
它将是一个Android原生应用,而不是一个网络应用。
是否已经编写了一些内容,所以我不需要从一开始就实现它。?
我是django,python开发者。
答案 0 :(得分:4)
这不是一个轮询解决方案,但是当我需要这样的东西时,我创建了一个foreground服务,它创建了一个到我服务器的持久套接字连接。然后我在一些广播接收器上注册以维护我的服务,在BOOT_COMPLETED和CONNECTIVITY_CHANGE上。这对我来说比C2DM更好,因为我对系统有更多的控制权并且几乎是实时的。 C2DM是一个火灾和遗忘系统,并不保证是可靠的。您必须在连接中的更改之间管理套接字,并且可能保留某种wakelock。
对于轮询解决方案,您还可以构建Web服务器并使用http请求进行轮询。这将避免在连接更改之间管理套接字,但不是实时解决方案。
答案 1 :(得分:0)
在接收端,有Android Cloud to Device Messaging Framework(Google推送通知的实现):http://code.google.com/android/c2dm/
注意:这需要Android 2.2及更高版本(截至今天约84%的用户)