RxJava事件总线

Igo*_*ryl 5 android rx-java rx-android rx-java2

使用的第一个版本RxJavaRxAndroid我有以下classEventBus:

public class RxBus {
private static RxBus instance;
private PublishSubject<Object> subject = PublishSubject.create();

public static RxBus instanceOf() {
    if (instance == null) {
        instance = new RxBus();
    }
    return instance;
}

public void setMessage(Object object) {
    subject.onNext(object);
}

public Observable<Object> getEvents() {
    return subject;
}
}
Run Code Online (Sandbox Code Playgroud)

instanceOf在任何类中获取实例 ,我使用setMessage方法发出消息并使用代码来获取发出的消息:

  bus.getEvents().subscribe(new Action1<Object>() {
        @Override
        public void call(Object o) {
            if (o instanceof String) {
                //TODO
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

Action1来自rx.functions包裹.尝试迁移使用RxJava 2我无法导入它.

请告诉我,什么是用最短的方式RxJava 2EventBus

Lam*_*rak 6

在RxJava2中,Action1已重命名为Consumer.

其余的操作接口根据Java 8功能类型命名.在没有参数Action0被替换io.reactivex.functions.Action为运营商和java.lang.RunnableScheduler方法.Action1已被重命名为Consumer并被Action2称为BiConsumer.ActionNConsumer<Object[]>类型声明替换.

请参阅2.0中的不同之处