美文网首页
RxBus简单使用

RxBus简单使用

作者: 有梦才可以远航 | 来源:发表于2019-03-01 15:01 被阅读0次

    配置

    //引入rxJava
    compile 'io.reactivex.rxjava2:rxjava:2.1.8'
    //引入rxAndroid
    compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
    //引入rxJava适配器,方便rxJava与retrofit的结合
    compile 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
    //引入rxrelay2,出现异常仍然可以处理
    compile 'com.jakewharton.rxrelay2:rxrelay:2.0.0'
    

    Rxbus封装

    public class RxBus {
        private final Relay<Object> mBus;
    
        private RxBus() {
            // toSerialized method made bus thread safe
            mBus = PublishRelay.create().toSerialized();
        }
    
        public static RxBus get() {
            return Holder.BUS;
        }
        //发送事件
        public void post(Object obj) {
            mBus.accept(obj);
        }
        //根据传递的 eventType 类型返回特定类型(eventType)的 被观察者
        public <T> Observable<T> toObservable(Class<T> tClass) {
            return mBus.ofType(tClass);
        }
      
        public Observable<Object> toObservable() {
            return mBus;
        }
        //判断是否有订阅者
        public boolean hasObservers() {
            return mBus.hasObservers();
        }
    
        private static class Holder {
            private static final RxBus BUS = new RxBus();
        }
    }
    
    
    

    RxBus使用

    发送

    OrgBean orgBean = new OrgBean();
    RxBus.get().post(orgBean);
    

    接收

    RxBus.get().toObservable()
                    .subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe(new Consumer<Object>() {
                        @Override
                        public void accept(Object o) throws Exception {
                            if (o instanceof OrgBean) {
                              OrgBean mOrgBean = new OrgBean();
                              mOrgBean = ((OrgBean) o);
                            } 
                        }
                    });
    

    记录自己的android学习笔记。
    欢迎互相学习Github

    相关文章

      网友评论

          本文标题:RxBus简单使用

          本文链接:https://www.haomeiwen.com/subject/eheduqtx.html