亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

RxBus的實現和使用

2019-11-06 09:56:31
字體:
來源:轉載
供稿:網友

RxBus并不是一個庫,而是一種模式。相信大多數開發者都使用過EventBus,作為事件總線通信庫,如果你的項目已經加入Rxjava和EventBus,不妨用RxBus代替EventBus,以減少庫的依賴。

一、添加RxJava和RxAndroid依賴

    //RxJava and RxAndroid    compile 'io.reactivex:rxandroid:1.1.0'    compile 'io.reactivex:rxjava:1.1.0'

二、新建RxBus類

不多說直接上代碼:

import rx.Observable;import rx.subjects.PublishSubject;import rx.subjects.SerializedSubject;import rx.subjects.Subject;/** * Created by ywh on 2017/2/8 */public class RxBus {    PRivate static volatile RxBus mInstance;  private final Subject bus;    public RxBus()    {        bus = new SerializedSubject<>(PublishSubject.create());    }    /**     * 單例模式RxBus     *     * @return     */    public static RxBus getInstance()    {        RxBus rxBus2 = mInstance;        if (mInstance == null)        {            synchronized (RxBus.class)            {                rxBus2 = mInstance;                if (mInstance == null)                {                    rxBus2 = new RxBus();                    mInstance = rxBus2;                }            }        }        return rxBus2;    }    /**     * 發送消息     *     * @param object     */    public void post(Object object)    {        bus.onNext(object);    }    /**     * 接收消息     *     * @param eventType     * @param <T>     * @return     */    public <T> Observable<T> toObserverable(Class<T> eventType)    {        return bus.ofType(eventType);    }}

1、Subject同時充當了Observer和Observable的角色,Subject是非線程安全的,要避免該問題,需要將 Subject轉換為一個SerializedSubject,上述RxBus類中把線程非安全的PublishSubject包裝成線程安全的Subject。2、PublishSubject只會把在訂閱發生的時間點之后來自原始Observable的數據發射給觀察者。3、ofType操作符只發射指定類型的數據,其內部就是filter+cast

三、創建你需要發送的事件類

我們這里用StudentEvent舉例

/** * Created by ywh on 2017/2/8 */public class StudentEvent {    private String id;    private String name;    public StudentEvent(String id, String name) {        this.id = id;        this.name = name;    }    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }}

四、發送事件

RxBus.getInstance().post(new StudentEvent("007","小明"));

五、接收事件

rxSbscription=RxBus.getInstance().toObserverable(StudentEvent.class)                .subscribe(new Action1<StudentEvent>() {                    @Override                    public void call(StudentEvent studentEvent) {                        textView.setText("id:"+ studentEvent.getId()+"  name:"+ studentEvent.getName());                    }                });

注:rxSbscription是Sbscription的對象,我們這里把RxBus.getInstance().toObserverable(StudentEvent.class)賦值給rxSbscription以方便生命周期結束時取消訂閱事件

六、取消訂閱

@Override    protected void onDestroy() {        if (!rxSbscription.isUnsubscribed()){            rxSbscription.unsubscribe();        }        super.onDestroy();    }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美午夜视频在线观看| 久久精品亚洲国产| 91av在线免费观看视频| 国产精品美女呻吟| 一本色道久久综合狠狠躁篇的优点| 美日韩精品免费视频| 亚洲国产精品中文| 久久精品国产久精国产一老狼| 91国产美女视频| 欧美视频二区36p| 国产精品福利小视频| www国产亚洲精品久久网站| 久久福利网址导航| 一区二区三区在线播放欧美| 成人性生交大片免费观看嘿嘿视频| 国产一区二区色| 最新日韩中文字幕| 日日噜噜噜夜夜爽亚洲精品| 亚洲第一视频在线观看| 亚洲欧洲日本专区| 欧美视频在线观看免费网址| 91久久精品日日躁夜夜躁国产| 欧美成人精品在线| 国产欧美精品一区二区| 色999日韩欧美国产| 97免费视频在线播放| 亚洲国产欧美久久| 丝袜一区二区三区| 91网站在线免费观看| 久久国产精品网站| 久久99久久亚洲国产| 国产精品v片在线观看不卡| 91免费国产网站| 精品视频一区在线视频| 久久人人97超碰精品888| 亚洲最新av在线| 亚洲精品一区二三区不卡| 亚洲第五色综合网| 中文字幕欧美日韩在线| 精品综合久久久久久97| 欧美二区在线播放| 日韩va亚洲va欧洲va国产| 欧美大片欧美激情性色a∨久久| 人妖精品videosex性欧美| 久久男人的天堂| 国产精品视频网站| 中文字幕综合在线| 久久久999精品免费| 欧美高清在线观看| 日本成熟性欧美| 国模gogo一区二区大胆私拍| 91精品国产91久久| 国产精品视频一| 久久久久国产一区二区三区| 精品国产91久久久久久老师| 黑人巨大精品欧美一区二区三区| 中文字幕成人精品久久不卡| 国产va免费精品高清在线| 国产精品r级在线| 午夜剧场成人观在线视频免费观看| 日韩欧美国产一区二区| 久久久久女教师免费一区| 九九精品在线观看| 久久伊人色综合| 久久99精品久久久久久青青91| 亚洲丝袜av一区| 丁香五六月婷婷久久激情| 精品毛片网大全| 77777少妇光屁股久久一区| 亚洲第一福利视频| 一区二区欧美日韩视频| 午夜精品视频网站| 大伊人狠狠躁夜夜躁av一区| 91精品国产综合久久久久久蜜臀| 亚洲社区在线观看| 色综合久久精品亚洲国产| 夜夜嗨av一区二区三区免费区| 日韩欧美国产免费播放| 丝袜美腿精品国产二区| 欧美日韩精品在线播放| 97激碰免费视频| 成人欧美一区二区三区黑人| 欧美性色视频在线| 中文字幕日韩欧美在线视频| 国产精品观看在线亚洲人成网| 91在线中文字幕| 日韩男女性生活视频| 成人黄色短视频在线观看| 欧美性猛交xxxxx免费看| 亚洲欧美激情精品一区二区| 成人xvideos免费视频| 一区二区av在线| 精品美女永久免费视频| 欧美日韩人人澡狠狠躁视频| 国产一区二区美女视频| 亚洲人成电影网站色| 韩国美女主播一区| 久久久女女女女999久久| 久久综合五月天| 国产欧美日韩中文字幕在线| 91高清视频在线免费观看| 国产亚洲欧洲高清一区| 黑人巨大精品欧美一区二区| 亚洲国产成人91精品| 欧美日韩中文字幕日韩欧美| 国产丝袜一区视频在线观看| 日韩免费高清在线观看| 精品国产乱码久久久久久虫虫漫画| 成人欧美一区二区三区黑人| 欧美性猛交99久久久久99按摩| 日本一区二区在线免费播放| 成人免费激情视频| 久久久综合免费视频| 久久久久久久一| 久久777国产线看观看精品| 一区二区三区视频观看| 日韩av在线导航| 国产成人免费av| 91精品啪在线观看麻豆免费| 在线观看亚洲视频| 亚洲国产日韩欧美在线动漫| 欧美大成色www永久网站婷| 国产一区二区黑人欧美xxxx| 欧美极品美女电影一区| 日韩欧美在线看| 亚洲自拍中文字幕| 国产v综合v亚洲欧美久久| 国内精品小视频在线观看| 中文字幕在线观看亚洲| 久久免费视频网| 不卡在线观看电视剧完整版| 国产精品久久一| 欧洲成人在线视频| 亚洲第一免费播放区| 在线观看不卡av| 亚洲综合小说区| 欧美成人精品在线观看| 91精品久久久久久久久久| 亚洲电影第1页| 中文字幕亚洲专区| 久久久久久综合网天天| 一本色道久久88综合亚洲精品ⅰ| 亚洲欧美综合另类中字| 欧美激情乱人伦一区| 岛国av一区二区三区| 久久久久久尹人网香蕉| 欧美成人免费全部观看天天性色| 中文字幕综合一区| 日韩av在线免费观看一区| 乱亲女秽乱长久久久| 国产精品高清在线| 欧洲亚洲女同hd| 亚洲精品视频二区| 中文字幕亚洲精品| 欧美成人精品在线| 亚洲无av在线中文字幕| 国内精品400部情侣激情| 亚洲天堂色网站| 性欧美长视频免费观看不卡| 欧美成年人视频网站| 亚洲在线第一页| www.欧美三级电影.com| 亚洲精品资源在线| 亚洲色图国产精品|