Ich habe eine einfache Methode erstellt, die Nachricht (als Object) an ein bestimmtes Thema senden wird. Am anderen Ende wird der Teilnehmer das Objekt konsumieren.RxJava: So senden Sie einige zusätzliche Informationen an Abonnenten
Ich werde das gleiche Thema für mehrere Verbraucher verwenden, daher während des Sendens von Nachrichten möchten einige zusätzliche Informationen, z. B. 200, 300 senden. So kann Verbraucher unrelevante Nachrichten herausfiltern. Aber irgendwie nicht in der Lage herauszufinden, wie das geht.
Zusatzinfo (int-Parameter) können bei postToSubject
Verfahren behandelt werden und bei action1
aber nicht sicher, wie es zu platzieren hier subject.onNext(object)
Bitte vorschlagen, wenn Sie eine Lösung denken.
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);
}
});
}
obiges Verfahren wird, wie unten genannt (von einer Android-Aktivität, Ziel ist Artikel senden zu unterziehen. Subject durch zweites Argument in der Methode zurückgegeben werden)
An einem anderen Android Component Class (von Linear Layout geerbt), wird diese Nachricht wie folgt konsumiert. Wenn ich zusätzliche Informationen erhalten kann, d. H. 200, 300, werde ich herausfiltern und next() darin einfügen. So kann ich mir eine Lösung vorstellen, jedoch kann ein RxJava-Experte eine gute Lösung geben.
Antwort:
Zusätzliche Informationen über OnNext() übergeben, wie unten, werden Teilnehmer mit if (object instanceof Integer)
überprüfen und die Logik setzen den nächsten Wert von nächsten OnNext()
Nicht sicher, was Sie meinen. Könnten Sie etwas mehr Code hinzufügen, damit wir Ihre Absicht besser verstehen? Mach dir keine Sorgen, wenn es nicht kompiliert. – Bohemian
@Bohemian - danke für die Formatierung und Ihr Interesse .. haben vollständigen relevanten Code 1) Methode 2) Methode Anruf 3) Verbrauch .. angebracht lassen Sie mich bitte wissen, wenn Sie weitere Informationen benötigen ..FYI, das funktioniert einwandfrei, aber aufgrund mehrerer mögliche Verbraucher, muss ich es mit zusätzlichen Parametern filtern – Girish