RxBus.Java
public class RxBus {
private static RxBus myInstance = new RxBus();
private final Subject<Object, Object> _bus = new SerializedSubject<>(PublishSubject.create());
...
public static RxBus singleton() {
if (myInstance == null) {
throw new NullPointerException("RxBux is not initialized.");
}
return myInstance;
}
public void send(Object o) {
_bus.onNext(o);
}
public Observable<Object> toObservable() {
return _bus;
}
}
Sending
RxBus.singleton().send("hello");
Receiving & Unsubscription
private Subscription subscriber;
...
subscriber =
RxBus.singleton().toObservable()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(s -> {
...
});
// finishing or exiting
subscriber.unsubscribe();