天天看點

RxJava

RxJava與EventBus的差別

RxJava訂閱與釋出事件不是分開寫的,是函數式程式設計。

指定釋出事件和消費事件的方式不一樣,RxJava直接通過2個方法指定,而EventBus需要單獨的定義方法。

RxJava比EventBus更加地強大:

a)變換:

         對于釋出的事件的資料,RxJava可以攔截進行轉換,XxxMap這樣的方法中添加FunX類的call方法(閉包)

         map變換

         flatMap變換        序列變換 

         注意一點:函數式程式設計要注意方法調用的順序,如果map在

                        .observeOn(AndroidSchedulers.mainThread())之後,則map的變換方法會在observe

                        r的線程執行。

b)RxJava與Retrofit,可以實作網絡請求的嵌套操作。

        如請求A接口得到資料m,再拿着資料m去請求接口B,得到資料n。

c)可以任意的切換線程

d)防抖動,在一定時間不會重複的發送事件

      本文轉自屠夫章哥  51CTO部落格,原文連結:http://blog.51cto.com/4259297/1766551,如需轉載請自行聯系原作者

繼續閱讀