RxJava與EventBus的區別編程
RxJava訂閱與發佈事件不是分開寫的,是函數式編程。
網絡
指定發佈事件和消費事件的方式不同,RxJava直接經過2個方法指定,而EventBus須要單獨的定義方法。閉包
RxJava比EventBus更加地強大:ide
a)變換:函數式編程
對於發佈的事件的數據,RxJava能夠攔截進行轉換,XxxMap這樣的方法中添加FunX類的call方法(閉包)函數
map變換
spa
flatMap變換 序列變換
線程
注意一點:函數式編程要注意方法調用的順序,若是map在接口
.observeOn(AndroidSchedulers.mainThread())以後,則map的變換方法會在observe事件
r的線程執行。
b)RxJava與Retrofit,能夠實現網絡請求的嵌套操做。
如請求A接口獲得數據m,再拿着數據m去請求接口B,獲得數據n。
c)能夠任意的切換線程
d)防抖動,在必定時間不會重複的發送事件