RxBus的使用(基于RxJava2.0)

来源:互联网 发布:淘宝怎么没有人工客服 编辑:程序博客网 时间:2024/05/17 22:08

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




原创粉丝点击