我有一个非常基本的设计我的整个应用程序,其中有几个用户在我的Android设备上的应用程序将数据提交到服务器(我已经使用REST Web服务(java)+ postgresql作为我的服务器)通过HTTP发送请求来自android应用程序。我成功实现这一点,应用程序运行绝对正常。现在我想实现一个场景,在服务器上我的数据库上的任何更改(CRUD操作)应该在我的用户android设备上创建通知。如何在服务器设计不变的情况下实现这一目标?我查看了Google云消息传递,但可以找出服务器实现。
现在我已经在postgresql上实现了db触发器,并且能够使用postgresql的Notify / Listen功能将控制权恢复到java代码中。从这里我需要连接到Android设备。如何实现这一目标。 Google Cloud Messaging是唯一的方式吗?我没有在服务器实现中看到任何插入/更新语句。有人可以指导我吗?
答案 0 :(得分:4)
您可以使用GCM或在服务器端实现Socket并从移动设备打开套接字连接,但这种方法可能会增加一些额外的处理开销,因为它会创建一个守护程序线程来监听来自移动设备的套接字端口。
答案 1 :(得分:2)
您应该使用本机库( NotificationManager 等),here您可以找到一个很棒的教程。
答案 2 :(得分:0)
我的建议是让您使用GCM。 GCM通常最多需要4kb,因此您可以拥有自己定义的“命令”。您可以使用它们来确定两端的请求,即在Android应用程序和服务器端。服务器上的PHP脚本可以帮助您。
我正在开发一个应用程序,Android应用程序通过POST将消息发送到服务器,服务器通过GCM将消息转发给相应的用户。在我的情况下,我有很多东西要分享,所以在这种情况下我使用命令,例如,如果它是一个新的传入消息我发送GCM到应用程序,一个变量作为命令,其余作为数据。在Android应用程序上,我使用命令变量来确定如何处理数据。
请避免使用插槽建议,它会让你的应用耗尽电池以维持打开的插座,此外你不必重新发明轮子,而谷歌服务器已经拥有它