直接上代码:
1.创建RxBus对象(单例模式)
public class RxBus {
private final Subject mBus; private RxBus() { mBus = new SerializedSubject<>(PublishSubject.create()); } public static RxBus getDefault() { return Holder.rxBus; } private static final class Holder { private final static RxBus rxBus = new RxBus(); } public <T> Observable register(Class<T> event) { return mBus.ofType(event); } public void unRegister(Subscription subscriber) { subscriber.unsubscribe(); }
}
2.发送事件(发送消息调用post方法就可以发送不同类型的事件)
RxBus.getDefault().post(new RxBusEvent());
3.接受事件(在需要接收消息处订阅)
RxBus.getDefault().toObservable(RxBusEvent.class)
.subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Action1<RxBusEvent>() { @Override public void call(RxBusEvent rxBusEvent) { //接收到事件代码逻辑 } });