私は単純なメソッドを作成しました。これは与えられたサブジェクトにメッセージを(Objectとして)送信します。反対側の加入者はオブジェクトを消費する。RxJava:加入者にいくつかの追加情報を送信する方法
複数のコンシューマに同じ件名を使用するため、メッセージを送信する際に追加の情報、つまり200,300を送信します。したがって、コンシューマは関連性の低いメッセージを除外できます。しかし、何とかそれを行う方法を理解することができません。
追加情報(int型のパラメータが)postToSubject
方法で処理することができ、action1
ではなく、確かにあなたがどんな解決策を考えることができる場合
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から。件名方法の第2引数によって返される)、以下のように呼ばれる別のアンドロイドで
コンポーネントクラス(線形レイアウトから継承)では、このメッセージは次のように消費されます。私が追加情報、すなわち200,300を得ることができるならば、それをフィルタリングしてその中にonNext()を入れます。これは私が解決策を考える方法ですが、RxJavaのエキスパートが良い解決策を提供するかもしれません。
回答:
追加情報は、以下のように、加入者がif (object instanceof Integer)
を使用して確認し、次のonNextによって返された次の値()
あなたは何を意味するのかよく分かりません。意図を理解するのに役立つもう少しのコードを追加できますか?それがコンパイルされない場合は心配しないでください。 – Bohemian
@ボヘミアン - フォーマットしていただきありがとうございます。関心のある方には関連コードを添付してください。1)メソッド2)メソッド呼び出し3)消費...詳細が必要な場合はお知らせください。参考までに、これは完璧に動作しますが、複数の可能な消費者のために、私は追加のパラメータでそれをフィルタリングする必要があります – Girish