android - rxjava多线程并发怎么控制顺序
怪我咯
怪我咯 2017-05-16 13:33:18
[Android讨论组]

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

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(3)
ringa_lee

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

给我你的怀抱

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

过去多啦不再A梦
    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(更新)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号