Android上的RxJava和随机零星事件
我想像使用Guava的EventBus或Otto一样使用它,但我不知道如何让它以这种方式运行 这是一个场景:假设我想在我的Android应用程序中有一个按钮,每次按下一个按钮,我希望RxJava通过我的Observable发出一个事件。在我看来,我必须让服务Android上的RxJava和随机零星事件,java,android,rx-java,Java,Android,Rx Java,我想像使用Guava的EventBus或Otto一样使用它,但我不知道如何让它以这种方式运行 这是一个场景:假设我想在我的Android应用程序中有一个按钮,每次按下一个按钮,我希望RxJava通过我的Observable发出一个事件。在我看来,我必须让服务在它得到一个事件后重新注册,活动也需要创建一个新的可观察对象 就像我说的 Observable.from(x) 在我看来,对于每一个事件,我都需要这样做,但这会创建一个新的可观察对象,需要再次注册。当然我遗漏了一些东西。您可能想做这样的事情
在它得到一个事件后重新注册
,活动也需要创建一个新的可观察对象
就像我说的
Observable.from(x)
在我看来,对于每一个事件,我都需要这样做,但这会创建一个新的可观察对象,需要再次注册。当然我遗漏了一些东西。您可能想做这样的事情(从rx.subjects.PublishSubject):
PublishSubject=PublishSubject.create();
//observer1将接收所有onNext和onCompleted事件
subject.subscribe(observer1);
主题.onNext(“一”);
主题.onNext(“两个”);
//observer2将只接收“三个”且未完成
subject.subscribe(observer2);
主题.onNext(“三”);
subject.onCompleted();
如果您可以将Subject接口注入服务,将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();