RxBus的使用(基於RxJava2.0)

注: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());




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