2017-02-14 30 views
0

我剛剛開始學習RxJava,我有點迷路。來自DB的RxJava數據與屏幕上的列表

我的場景如下:我存儲一些數據的本地NoSQL鍵值數據庫。問題是端點可以將數據添加到此數據庫,並且用戶也可以刪除其中的一部分。

我將此數據顯示爲屏幕列表(RecyclerView)。

我想知道什麼是最好的方法,總是知道什麼是從一個地方數據庫中的最新數據,所以我可以相應地更新用戶界面。

回答

2

您正在尋找的是一種創建Observer的方法,意思是將DB變更事件轉換爲Observable。

因此,你將有2種流:
一個作用於數據庫並更改在各種事件(推/雲/用戶點擊)時觸發的數據(更新/刪除),這些更改將觸發數據庫更改事件,在它轉而,將在表示數據庫更改事件的第二個流上發出事件。

然後在您的用戶界面中,您可以對Rx方式中的更改做出反應(響應數據庫更改事件流)。

爲了創建數據庫更改Observable,您需要了解有關從異步事件創建Observable(可以使用Subjects完成的操作,或者如果您正在與某個數據庫集成並且您有數據庫更改事件,包」它可觀察使用fromEmitter(),您可以瞭解更多關於它從這個博客:
https://medium.com/yammer-engineering/converting-callback-async-calls-to-rxjava-ebc68bde5831#.z1cj7ayhr

+0

這正是我所期待的。謝謝! –

0

接近它的一種方法是在客戶端和數據存儲之間放置數據服務。使該數據服務成爲可觀察的。允許任何有興趣在數據更改時通知要向數據服務註冊的人員。

+0

感謝您的快速回復,但我並不完全跟着你,你可以提供一些代碼片段進行。它更容易理解 –

+0

沒有片段如果你正在學習RxJava,你應該知道Observer/Observable是什麼 – duffymo

+0

我剛在我的文章中說過我正在學習rx,我所知道的是Observable發出並轉換'數據'和觀察員做最後的工作 –