RxBus傳遞消息

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;
    }

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章