我曾使用过第一版的RxJava
和RxAndroid
,并创建了以下class
作为EventBus
:
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;
}
}
在任何类中使用instanceOf
获取实例,我使用setMessage
方法来发出消息,并使用以下代码来获取已发出的消息:
bus.getEvents().subscribe(new Action1<Object>() {
@Override
public void call(Object o) {
if (o instanceof String) {
//TODO
}
}
});
Action1
来自于rx.functions
包。尝试迁移到使用RxJava 2
时,我无法导入它。
请告诉我,使用RxJava 2
作为EventBus
的最简便方法是什么?