如何从android studio应用程序监听mysql数据库上的任何更改?

时间:2019-06-13 09:05:49

标签: android mysql

因此,我目前正在尝试制作某种消息传递应用程序,该应用程序非常基础(仅供学习)。而且我坚持认为,该应用程序必须侦听MySQL数据库上的任何更改(这是应用程序发送消息的位置),以便它可以更新其recyclerview并将数据放入其中。

我已经完成了向数据库发送数据并检索(使用Volley)数据的工作,但是我只是做了一个循环,每5秒重复一次,以查看是否有任何内容添加到数据库中。正在工作,但很糟糕:/

我没有任何代码可以显示给您,因为我在这方面没有做任何事情。问我是否需要更多详细信息:)

因此,我希望我的应用程序仅使用数据库进行自我更新。

谢谢您抽出宝贵的时间来帮助我。

2 个答案:

答案 0 :(得分:1)

这是一个非常广泛的问题。如果我理解正确。您要检查服务器上的数据库是否已更新。此时您尝试的操作称为轮询

您可以查看以下选项:

  • 将新消息发送到服务器时,将推送通知发送到设备。收到推送通知后,您的应用将进行API调用以提取新消息。
  • 使用WebSocket。这是2种持久连接,您可以以更低的开销发送/接收数据。
  • 研究一些现有的解决方案,例如Firebase,Pusher Chatkit或任何其他提供商。

您仍然可以使用轮询。为了节省一些资源,您可以使用指数补偿并限制对服务器的呼叫次数。当收到新消息时,发送推送通知。

答案 1 :(得分:0)

最好的方法是使用实​​时数据库代替mysql。

我强烈建议您在聊天应用程序中使用Firebase实时数据库。如果您使用的是实时数据库,则不必担心数据库同步(每5秒钟重复一次的循环,看看是否有任何内容已添加到数据库中,这是一个非常糟糕的解决方案)。 >

请查看this简单聊天应用程序示例。