android - 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是一样的,希望能够指点迷津,感觉像无头苍蝇一样,能不能用伪代码写一下思路谢谢
问题解答
回答1:过滤的话应该用Filter这个操作符吧
回答2:用这个操作符concatMap可以保证线程执行的顺序不会错乱!
回答3: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(更新)
相关文章:
1. docker - 如何修改运行中容器的配置2. dockerfile - 我用docker build的时候出现下边问题 麻烦帮我看一下3. docker 下面创建的IMAGE 他们的 ID 一样?这个是怎么回事????4. 我在centos容器里安装docker,也就是在容器里安装容器,报错了?5. docker-compose 为何找不到配置文件?6. 计算机 - 我学习了C语言,数据结构和一点点java基础,想自学C++,请问买什么入门书籍好?7. docker start -a dockername 老是卡住,什么情况?8. 在windows下安装docker Toolbox 启动Docker Quickstart Terminal 失败!9. 前端 - css中关于设置透明度的问题,有点混乱10. docker绑定了nginx端口 外部访问不到
