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,如需轉載請自行聯系原作者