Android上的RxJava和随机偶发事件

ari*_*nte 7 java android rx-java

我想使用RxJava,就像我会使用Guava的EventBus或Otto一样,但我不知道如何让它以这种方式运行.

这就是场景:假设我想在我的Android应用程序中有一个按钮,每次按下按钮我希望RxJava通过我的Observable发出一个事件.在我看来,我必须reregister在获得事件后获得服务,并且活动也需要创建一个新的observable.

就像我说的那样

Observable.from(x)
Run Code Online (Sandbox Code Playgroud)

在我看来,我需要为每个事件做到这一点,但这会创建一个需要再次注册的新的可观察对象.当然我错过了一些东西.

Bob*_*ett 6

你可能想做这样的事情(来自rx.subjects.PublishSubject):

PublishSubject<Object> subject = PublishSubject.create();
// observer1 will receive all onNext and onCompleted events
subject.subscribe(observer1);
subject.onNext("one");
subject.onNext("two");
// observer2 will only receive "three" and onCompleted
subject.subscribe(observer2);
subject.onNext("three");
subject.onCompleted();
Run Code Online (Sandbox Code Playgroud)

如果您可以将Subject接口注入Service,并将PublishSubject注入Activity中(反之亦然,具体取决于您的操作),您可以很好地分离关注点.