【发布时间】:2017-01-16 18:16:24
【问题描述】:
我创建了一个简单的方法,它将消息(作为对象)发送到给定的主题。在另一端,订阅者将使用该对象。
我将为多个消费者使用相同的主题,因此在发送消息时想要发送一些额外的信息,即 200、300。因此消费者可以过滤掉不相关的消息。但不知何故无法弄清楚如何做到这一点。
可以在postToSubject 方法和action1 处理附加信息(int 参数),但不确定如何将其放置在此处subject.onNext(object)
如果您能想到任何解决方案,请提出建议。
public void postToSubject(Object object, Subject subject) {
Observable<Object> observable = Observable.create(new Observable.OnSubscribe<Object>() {
@Override
public void call(Subscriber<? super Object> subscriber) {
subscriber.onNext(object);
subscriber.onCompleted();
}
});
observable.subscribe(new Action1() {
@Override
public void call(Object object) {
subject.onNext(object);
}
});
}
上述方法调用如下(来自Android Activity,目标是将项目发送给主题。主题将由方法中的第二个参数返回)
在另一个 Android 组件类(继承自线性布局),该消息将被如下消费。如果我能获得更多信息,即 200, 300 ,我将过滤掉并将 onNext() 放入其中。这是我能想到的解决方案,但是 RxJava 专家可能会给出一个很好的解决方案。
答案:
通过 onNext() 传递的附加信息如下,订阅者将使用if (object instanceof Integer) 进行检查并放入逻辑以获取下一个 onNext() 返回的下一个值
【问题讨论】:
-
不确定你的意思。您能否添加更多代码以帮助我们了解您的意图。如果它没有编译,请不要担心。
-
@Bohemian - 感谢您的格式化和您的兴趣.. 已附上完整的相关代码 1) 方法 2) 方法调用 3) 消耗 .. 如果您需要更多详细信息,请告诉我..仅供参考,这完美地工作,但是由于多个可能的消费者,我需要用额外的参数过滤它