package com.xiecc.seeWeather.component;
import io.reactivex.Observable;
import io.reactivex.subjects.PublishSubject;
import io.reactivex.subjects.Subject;
/**
* RxBus
* Created by YoKeyword on 2015/6/17.
* update by hugo: 静态内部类
*/
public class RxBus {
// 主题
private final Subject<Object> mBus;
private RxBus() {
mBus = PublishSubject.create();
}
public static RxBus getDefault() {
return RxBusHolder.sInstance;
}
private static class RxBusHolder {
private static final RxBus sInstance = new RxBus();
}
// 提供了一个新的事件
public void post(Object o) {
mBus.onNext(o);
}
// 根据传递的 eventType 类型返回特定类型(eventType)的 被观察者
public <T> Observable<T> toObservable(Class<T> eventType) {
return mBus.ofType(eventType);
}
}