我的Android应用程序目前使用Volley与我使用django rest框架构建的Web服务进行HTTP通信。我的后端包含一个MySQL数据库和python。
该应用将由多个用户更新同一页面组成。我希望这个页面能够接近实时更新。当数据库有更新(通过Web服务)时,我想将这些更新推送到所有连接的客户端。我更愿意将数据推送到客户端而不是轮询服务器。
将数据库同步到Android用户界面的推荐方法是什么?
以下是我遇到的一些选项:
Firebase Cloud Messaging (如果我走这条路线,我需要迁移我的数据库吗?)
有没有办法用Volley来实现这个目标?
答案 0 :(得分:1)
我建议您使用实时数据管理的 PubNub ,然后使用广播接收器,EventBus 或 Otto 来触发您的事件在当地听。让我来解释一下。
在数据库中,当CRUD操作成功时,您可以将其发布到 PubNub 服务器。这将反过来作为订阅者的客户。然后在您的应用程序中,您可以拥有一个正在运行的Android服务,然后它将侦听并处理正在接收的pub nub事件。此时,您可以使用EventBus或Otto在应用程序中触发本地事件,并让您的视图对这些事件做出反应。现在我建议分离事件管理的原因是,如果你改变实时数据提供者,它将需要你的应用程序中很少的代码更改,因为它封装在Android服务中,而不是整个应用程序。