Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android上的RxJava和随机零星事件_Java_Android_Rx Java - Fatal编程技术网

Android上的RxJava和随机零星事件

Android上的RxJava和随机零星事件,java,android,rx-java,Java,Android,Rx Java,我想像使用Guava的EventBus或Otto一样使用它,但我不知道如何让它以这种方式运行 这是一个场景:假设我想在我的Android应用程序中有一个按钮,每次按下一个按钮,我希望RxJava通过我的Observable发出一个事件。在我看来,我必须让服务在它得到一个事件后重新注册,活动也需要创建一个新的可观察对象 就像我说的 Observable.from(x) 在我看来,对于每一个事件,我都需要这样做,但这会创建一个新的可观察对象,需要再次注册。当然我遗漏了一些东西。您可能想做这样的事情

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

这是一个场景:假设我想在我的Android应用程序中有一个按钮,每次按下一个按钮,我希望RxJava通过我的Observable发出一个事件。在我看来,我必须让服务
在它得到一个事件后重新注册
,活动也需要创建一个新的可观察对象

就像我说的

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();