我刚刚开始学习RxJava,我有点失落。
我的场景如下:我存储一些数据的本地NoSQL键值数据库。问题是端点可以向该数据库添加数据,用户也可以删除其中的一些数据。
我将此数据显示为屏幕列表(RecyclerView)。
我想知道在一个地方始终知道数据库中最新数据的最佳方法是什么,这样我就可以相应地更新UI。
答案 0 :(得分:2)
您正在寻找的是一种创建Observer的方法,这意味着将DB更改事件转换为Observable。
所以你将拥有两种流:
在各种事件(推送/云/用户点击)上触发数据库并更改数据(更新/删除)后,这些更改将触发数据库更改事件,在其中,将在第二个事件上发出事件表示数据库更改事件的流。
然后在您的UI中,您可以对Rx方式的更改作出反应(响应数据库更改事件流)。
为了创建数据库更改Observable,您需要了解hot以从异步事件创建Observable(可以使用Subjects完成,或者如果您正在与某些DB集成并且您有DB更改事件,则可以&# 39;使用fromEmitter()使用Observable包装它,你可以从这个博客中了解更多信息:
https://medium.com/yammer-engineering/converting-callback-async-calls-to-rxjava-ebc68bde5831#.z1cj7ayhr
答案 1 :(得分:0)
接近它的一种方法是在客户端和数据存储之间放置数据服务。使该数据服务成为Observable。允许任何有兴趣在数据更改时收到通知的人注册数据服务。