android - rxjava多線程并發(fā)怎么控制順序
問(wèn)題描述
需求是從服務(wù)器獲取聊天列表,然后遍歷獲取聊天記錄,我這里用了Observable.from(conversations)然后對(duì)conversation插入本地?cái)?shù)據(jù)庫(kù),并且過(guò)濾得到需要的數(shù)據(jù),最后更新view我看了一下午,這么多關(guān)鍵詞相關(guān)SerializedSubject(我用SerializedSubject.from(conversations)也不行,而轉(zhuǎn)類(lèi)型Observable也報(bào)錯(cuò))trampoline(把任務(wù)放到當(dāng)前線程的隊(duì)列中,等當(dāng)前任務(wù)執(zhí)行完了,再繼續(xù)執(zhí)行隊(duì)列中的任務(wù))concatEager(這個(gè)操作符跟concatMap有什么區(qū)別http://blog.csdn.net/kisty_ya... 但是使用上沒(méi)例子不太懂)剛開(kāi)始是onNext里面處理下一步驟,然后我就用flatMap處理了,但是還是發(fā)射完成就結(jié)束了,沒(méi)有等onNext執(zhí)行完,而且感覺(jué)doOnNext和flatMap是一樣的,希望能夠指點(diǎn)迷津,感覺(jué)像無(wú)頭蒼蠅一樣,能不能用偽代碼寫(xiě)一下思路謝謝
問(wèn)題解答
回答1:過(guò)濾的話(huà)應(yīng)該用Filter這個(gè)操作符吧
回答2:用這個(gè)操作符concatMap可以保證線程執(zhí)行的順序不會(huì)錯(cuò)亂!
回答3:Obserable.fromCallable() .filter() .subscribe(io) .obserableOn(ui) .subscribe(action) 如果是需要將過(guò)濾的數(shù)據(jù)重新保存 Obserable data = Obserable.fromCallable() .filter() .subscribe(io) .share(); data.obserableon(io) .subscribe(數(shù)據(jù)庫(kù)) data.obserableOn(ui) .subscribe(更新)
相關(guān)文章:
1. git - 使用淘寶npm安裝hexo出現(xiàn)問(wèn)題?2. html5和Flash對(duì)抗是什么情況?3. 小程序怎么加外鏈,語(yǔ)句怎么寫(xiě)!求救新手,開(kāi)文檔沒(méi)發(fā)現(xiàn)4. javascript - vue-resource中如何設(shè)置全局的timeout?5. javascript - 在 vue里面用import引入js文件,結(jié)果為undefined6. PC 手機(jī)兼容的 編輯器7. php如何獲取訪問(wèn)者路由器的mac地址8. 多選框?qū)戇M(jìn)數(shù)據(jù)庫(kù)怎么寫(xiě)9. 求教一個(gè)mysql建表分組索引問(wèn)題10. thinkPHP5中獲取數(shù)據(jù)庫(kù)數(shù)據(jù)后默認(rèn)選中下拉框的值,傳遞到后臺(tái)消失不見(jiàn)。有圖有代碼,希望有人幫忙
