android - 如何从 android studio 应用程序监听 mysql 数据库的任何更改?
问题描述
所以我目前正在尝试制作某种消息传递应用程序,非常基本(只是为了学习)。而且我被困在应用程序必须监听 MySQL 数据库(应用程序发送消息的地方)上的任何更改的地步,以便它可以更新其 recyclerview 并将数据放入其中。
我已经完成了发送数据以执行数据库并检索(使用 Volley)它的部分,但我只是创建了一个循环,每 5 秒重复一次,以查看是否已将任何内容添加到数据库中,这正在工作但坏的 :/
我没有一些代码可以给你看,因为我没有在这部分做任何事情。询问我是否需要更多详细信息:)
所以我希望我的应用程序能够保持自身与数据库的更新。
感谢您花时间帮助我。
解决方案
这是一个非常广泛的问题。如果我理解正确。您想检查服务器上的数据库是否已更新。您此时尝试的操作称为polling。
您可以查看以下选项:
- 当有新消息发送到您的服务器时,向设备发送推送通知。收到推送通知后,您的应用程序将进行 API 调用以获取新消息。
- 使用 WebSocket。这是一种 2 路持久连接,您可以在其中以低得多的开销发送/接收数据。
- 查看一些现有的解决方案,例如 Firebase、Pusher Chatkit 或任何其他提供商。
您仍然可以使用polling。为了节省一些资源,您可以使用指数退避和限制对服务器的调用次数。当有新消息到达时,发送推送通知。
推荐阅读
- flutter - 如何在颤动的webview中允许地理定位?
- javascript - 按年和月分组数组
- delphi - 防止 TWinControl 实例失去焦点
- list - 在 Python 中编写标准字符串 + 列表名称 + 列表内容
- javascript - 如何从 html 表中加载嵌套数据
- java - java lambda foreach更新值非最终变量
- cube - 如何使用中心数据点创建立方体?以及如何在这个立方体中找到多少个数据点?
- php - Magento 2 事件 save_commit_after 未触发
- google-sheets - 向数组添加前缀列
- python - TowerPro SG90 连续旋转 360 度伺服电机的输入逐步角度增量