注:RxBus其实就是Rxjava的一种使用方法
新建一个单例RxBus类
public class RxBus { private static volatile RxBus mInstance; private final Subject bus; private RxBus() { bus = PublishSubject.create().toSerialized(); } /** * 单例模式RxBus * @return Rxbus对象 */ 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; } /** * 发送消息 */ public void post(Object object) { bus.onNext(object); } /** * 接收消息 */ public <T> Observable<T> toObserverable(Class<T> eventType) { return bus.ofType(eventType); } }创建事件类
自定义一个事件类,用于传输数据
public class Event {
}
接收事件
RxBus.getInstance().toObserverable(Event.class).subscribe(new Consumer<Event>() { @Override public void accept(Event event) throws Exception {发送事件Toast.makeText(this,"收到RxBus发送过来的信息",Toast.LENGTH_SHORT).show();}});
RxBus.getInstance().post(new Event());