public class BaseRxBus {
private final FlowableProcessor<Object> mBus;
private BaseRxBus() {
mBus = PublishProcessor.create().toSerialized();
}
private static class Holder {
private static BaseRxBus instance = new BaseRxBus();
}
public static BaseRxBus getInstance() {
return Holder.instance;
}
public void post(@NonNull Object obj) {
mBus.onNext(obj);
}
public <T> Flowable<T> register(Class<T> clz) {
return mBus.ofType(clz);
}
public void unregisterAll() {
//解除注册
mBus.onComplete();
}
public boolean hasSubscribers() {
return mBus.hasSubscribers();
}
public RxBusMessage setMsg(Object type,Object msg){
RxBusMessage rxBusMessage = new RxBusMessage( );
rxBusMessage.setType( type );
rxBusMessage.setMsg( msg );
return rxBusMessage;
}
}