项目中经常用到Rxjava,听说可以用RxBus来替换掉EventBus第三方库。
RxBus是一种模式,那么为什么要替换掉EventBus呢?
一,是为了更加熟悉RxJava的相关用法
二,是为了减少程序引用的第三方库

Android中的rxbus简单封装

   public class RxBus {    //单例创建   private static volatile RxBus rxBus;   private final PublishSubject mRxtBus=PublishSubject.create();   public static RxBus getRxBus(){    //加上线程同步锁      synchronized (RxBus.class){        if (rxBus==null){            rxBus=new RxBus();        }     }      return rxBus; }   //重写发送带Tag值得可以进行比对 public void post(int tag,Object event){    //用Message进行封装  这是自己封装的内部类    Message msg = new Message(tag,event);    mRxtBus.onNext(msg); }   //创建接受时间的方法   public  Observable toEvent(Class eventType){    return mRxtBus.ofType(eventType);}  //自己封装的传送数据的Bean类  public class Message{    private int tag;    private Object event;    public Message() {    }    public int getTag() {        return tag;    }    public void setTag(int tag) {        this.tag = tag;    }    public Object getEvent() {        return event;    }    public void setEvent(Object event) {        this.event = event;    }    public Message(int tag,Object event){        this.tag=tag;        this.event=event;     }  }}   

然后在post()方法中发送,在toEvent()方法中接收

       mButtone.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View view) {            RxBus.getRxBus().post(2,"哈哈!中国~");        }    });    RxBus.getRxBus().toEvent(RxBus.Message.class)            .observeOn(AndroidSchedulers.mainThread())            .subscribe(new Observer() {                @Override                public void onSubscribe(Disposable d) { }                @Override                public void onNext(RxBus.Message message) {                    if (message.getTag() == 1) {                        mTexte.setText((String) message.getEvent());                    }                }                @Override                public void onError(Throwable e) {                }                @Override                public void onComplete() {                }            });

更多相关文章

  1. Android(安卓)文字居中方法
  2. android 程序完全退出的有效方法
  3. Spinner下拉列表装填数据的两种方法
  4. 【Android(安卓)Developers Training】 76. 用Wi-Fi创建P2P连接
  5. Android(安卓)Rxjava和retrofit
  6. android java 知识点
  7. LeakCanary-帮助你检测Android所有的内存泄漏
  8. Android(安卓)startService 和 bindService
  9. 我的Android进阶之旅------>Android颜色值(#AARRGGBB)透明度百分比

随机推荐

  1. Docker 安装 mysql8
  2. Linux 发行版更新软件源
  3. 使用 Packer 创建自定义镜像
  4. Docker 安装 ubuntu、centos
  5. 使用 MongoDB 工具迁移自建数据库上云
  6. RPA 服务端迁移 (从k8s到docker)
  7. kubernetes Event 源码解析
  8. Node.js SDK 核心库安装与调用
  9. Mac 如何编译 PHP 8.0 到 MxSrvs 工具
  10. 在 ECS 实例上部署 Node.js 环境