rxjava多线程并发怎么控制顺序

需求是从服务器获取聊天列表,然后遍历获取聊天记录,我这里用了Observable.from(conversations)然后对conversation插入本地数据库,并且过滤得到需要的数据,最后更新view
我看了一下午,这么多关键词相关
SerializedSubject(我用SerializedSubject.from(conversations)也不行,而转类型Observable也报错)
trampoline(把任务放到当前线程的队列中,等当前任务执行完了,再继续执行队列中的任务)
concatEager(这个操作符跟concatMap有什么区别http://blog.csdn.net/kisty_ya... 但是使用上没例子不太懂)
刚开始是onNext里面处理下一步骤,然后我就用flatMap处理了,但是还是发射完成就结束了,没有等onNext执行完,而且感觉doOnNext和flatMap是一样的,希望能够指点迷津,感觉像无头苍蝇一样,能不能用伪代码写一下思路谢谢

阅读 10.4k
3 个回答

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

新手上路,请多包涵

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

    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(更新)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题