Java 如何从web服务器向Android应用程序发送数据?

Java 如何从web服务器向Android应用程序发送数据?,java,android,Java,Android,比如说,我想创建一个类似WhatsApp或Viber的消息传递应用程序。要发送消息,必须将消息从用户a传输到服务器,然后从服务器传输到用户B。 问题是,用户B如何知道服务器上有一条新消息要发送给他? 一种解决方案是每秒检查服务器上的新消息;但是,此解决方案会导致性能问题 这个问题的最佳解决方案是什么? 如何将数据从web服务器发送到android应用程序,而不需要定期检查服务器 如果能提供一些关于我需要使用哪些类或技术和/或一些示例代码的线索,我将不胜感激。 事先谢谢大家。是的,定期检查或“轮询

比如说,我想创建一个类似WhatsApp或Viber的消息传递应用程序。要发送消息,必须将消息从用户a传输到服务器,然后从服务器传输到用户B。 问题是,用户B如何知道服务器上有一条新消息要发送给他? 一种解决方案是每秒检查服务器上的新消息;但是,此解决方案会导致性能问题

这个问题的最佳解决方案是什么? 如何将数据从web服务器发送到android应用程序,而不需要定期检查服务器

如果能提供一些关于我需要使用哪些类或技术和/或一些示例代码的线索,我将不胜感激。
事先谢谢大家。

是的,定期检查或“轮询”您的后端并不理想,原因有很多,包括高电池使用率、高带宽使用率和高后端资源使用率

“向移动应用发送数据”的名称是“推送通知”

在Android平台上,该平台内置了对谷歌云消息(GCM)的支持,可以为您处理所有的底层通信。设置所需的一切就是向谷歌注册你的应用程序以获得GCM“API令牌”,然后该应用程序从手机获得一个“设备id”,并将其交给你的web服务器或其他后端。当您的后端想要发送推送时,它会联系Google并将设备id与消息一起传递。谷歌将信息转发到手机,你的应用程序可以在手机上监听并采取一些行动

有关官方故事,请参阅。您可以在那里找到一些示例,说明如何修改应用程序(客户端),使其能够侦听推送,以及如何编写web服务器,使其能够向应用程序发送推送

GCM速度极快,因此即使性能是您的首要任务,它也是一个不错的选择。根据我的经验,在我从后端发送请求后,推送会立即可靠地被接收。注意,GCM不能保证通过,这取决于许多因素。将其视为一个很好的特性,而不是整个设计所依赖的核心组件:)


哦,而且它是免费的。

使用Pubnub api它的成功和消息传递时间少于1/4秒

谷歌云消息传递与C2DM不同。Google Cloud Messaging缩写为GCM,是默认的解决方案。C2DM不能再使用了。