日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 芯聞號 > 充電吧
[導讀]最近在學習Rxjava相關的知識,發(fā)現(xiàn)我們完全可以用Rxjava里面的知識來代替以前項目中使用的EventBus.在介紹實現(xiàn)前,先說說幾點可能會有疑惑的問題:首先,明確一下RxBus的概念? ? ??

最近在學習Rxjava相關的知識,發(fā)現(xiàn)我們完全可以用Rxjava里面的知識來代替以前項目中使用的EventBus.


在介紹實現(xiàn)前,先說說幾點可能會有疑惑的問題:

首先,明確一下RxBus的概念

? ? ??RxBus 名字看起來像一個庫,但它并不是一個庫,而是一種模式,它的思想是使用 RxJava 來實現(xiàn)了 EventBus ,而讓你不再需要使用OTTO或者 GreenRobot 的EventBus。

其次,為什么要使用RxBus來代替EventBus

? ? ?我之所以想用RxBus來代替EventBus,一是為了自己更加熟悉Rxjava的相關用法,二是為了減少程序引用的第三方庫(既然都用了Rxjava 沒必要再去引入EventBus)。

當然,如果對Rxjava沒有一點了解,或者說只是想簡單的使用EventBus的功能,建議還是使用Otto或者GreenRobot的EventBus,這二者都可以通過注解非常簡單的使用。

下面是正文:


public class RxBus {
private static RxBus instance;
private Vector

Rxbus代碼如上,使用方式和EventBus一樣,在合適的地方(比如oncreate 或者 onResume)注冊,和取消注冊(如onPause和onDestroy),在初始化同時,我們可以指定接收后所運行的線程等其他操作


Observableobservable?=?RxBus.getInstance().register(this);
observable.observeOn(AndroidSchedulers.mainThread()).subscribe(new?Action1()?{
????@Override
????public?void?call(UserBean?userBean)?{
????????Log.d("Test",?"received?:"?+?userBean.toString());
????}
});
RxBus.getInstance().unregister(this);
發(fā)送事件的方式:

RxBus.getInstance().post(new?UserBean("rxbus",?99));


當然我們還可以在這個的基礎上加上注解的方式?來讓實現(xiàn)更方便,這個就留著后面再處理了!
本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉