suchen

Heim  >  Fragen und Antworten  >  Hauptteil

android – So steuern Sie die Reihenfolge der RxJava-Multithread-Parallelität

Die Anforderung besteht darin, die Chat-Liste vom Server abzurufen und dann zu durchlaufen, um die Chat-Datensätze abzurufen. Ich habe hier Observable.from(conversations) verwendet und dann die Konversation in die lokale Datenbank eingefügt, gefiltert, um die erforderlichen Daten zu erhalten, und schließlich habe die Ansicht aktualisiert
Ich habe es mir den ganzen Nachmittag angeschaut, also im Zusammenhang mit mehreren Schlüsselwörtern
SerializedSubject (Ich kann SerializedSubject.from(conversations) nicht verwenden und beim Konvertieren in Observable wird ein Fehler gemeldet)
trampoline (Stellen Sie die Aufgabe in die Warteschlange von Warten Sie im aktuellen Thread, bis die aktuelle Aufgabe abgeschlossen ist, und fahren Sie dann mit der Ausführung der Warteschlange fort) Task)
concatEager (Was ist der Unterschied zwischen diesem Operator und concatMap http://blog.csdn.net/kisty_ya... Aber da Es gibt keine Anwendungsbeispiele und ich verstehe es nicht)
Zuerst wird der nächste Schritt in onNext verarbeitet, und dann habe ich flatMap verwendet, um ihn zu verarbeiten, aber er endete, als der Start abgeschlossen war, und ich habe nicht auf onNext gewartet Ich habe das Gefühl, dass doOnNext und flatMap gleich sind. Ich komme mir wie eine kopflose Fliege vor. Danke

怪我咯怪我咯2830 Tage vor792

Antworte allen(3)Ich werde antworten

  • ringa_lee

    ringa_lee2017-05-16 13:35:18

    过滤的话应该用Filter这个操作符吧

    Antwort
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-16 13:35:18

    用这个操作符concatMap可以保证线程执行的顺序不会错乱!

    Antwort
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-16 13:35:18

        Obserable.fromCallable()
                 .filter()
                 .subscribe(io)
                 .obserableOn(ui)
                 .subscribe(action)
                 
    如果是需要将过滤的数据重新保存
        Obserable data = Obserable.fromCallable()
                 .filter()
                 .subscribe(io)
                 .share();
       data.obserableon(io)
           .subscribe(数据库)
       data.obserableOn(ui)
           .subscribe(更新)

    Antwort
    0
  • StornierenAntwort