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