项目中经常用到Rxjava,听说可以用RxBus来替换掉EventBus第三方库。
RxBus是一种模式,那么为什么要替换掉EventBus呢?
一,是为了更加熟悉RxJava的相关用法
二,是为了减少程序引用的第三方库
Android中的rxbus简单封装
public class RxBus {
//单例创建
private static volatile RxBus rxBus;
private final PublishSubject<Object> 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 <T> Observable<T> toEvent(Class<T> eventType){
return mRxtBus.ofType(eventType);
}
//自己封装的传送数据的Bean类
public class Message{
private int tag;
private Object event;
public Message() {
}
public int getTa