recherche

Maison  >  Questions et réponses  >  le corps du texte

android - Comment contrôler l'ordre de concurrence multithread RxJava

L'exigence est d'obtenir la liste de discussion du serveur, puis de parcourir pour obtenir les enregistrements de discussion. J'ai utilisé Observable.from(conversations) ici, puis j'ai inséré la conversation dans la base de données locale, filtrée pour obtenir les données requises, et enfin mis à jour la vue
Je l'ai regardé tout l'après-midi, donc lié à plusieurs mots-clés
SerializedSubject (je ne peux pas utiliser SerializedSubject.from(conversations), et une erreur est signalée lors de la conversion en Observable)
trampoline (mettre la tâche dans la file d'attente de le thread en cours, attendez que la tâche en cours soit terminée, puis continuez à exécuter la file d'attente) Tâche)
concatEager (Quelle est la différence entre cet opérateur et concatMap http://blog.csdn.net/kisty_ya... Mais là il n'y a pas d'exemples d'utilisation et je ne comprends pas)
Au début, l'étape suivante est traitée dans onNext, puis j'ai utilisé flatMap pour la gérer, mais cela s'est terminé une fois le lancement terminé, je n'ai pas attendu onNext. pour terminer l'exécution, et je pense que doOnNext et flatMap sont identiques. J'espère que vous pourrez me donner quelques conseils. Je me sens comme une mouche sans tête. Pouvez-vous écrire l'idée en pseudo-code ?

怪我咯怪我咯2742 Il y a quelques jours739

répondre à tous(3)je répondrai

  • ringa_lee

    ringa_lee2017-05-16 13:35:18

    Si vous souhaitez filtrer, vous devez utiliser l'opérateur Filtre

    répondre
    0
  • 给我你的怀抱

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

    L'utilisation de cet opérateur concatMap peut garantir que l'ordre d'exécution des threads ne sera pas désordonné !

    répondre
    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(更新)

    répondre
    0
  • Annulerrépondre