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)類型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)例子不太懂)剛開始是onNext里面處理下一步驟,然后我就用flatMap處理了,但是還是發(fā)射完成就結(jié)束了,沒(méi)有等onNext執(zhí)行完,而且感覺(jué)doOnNext和flatMap是一樣的,希望能夠指點(diǎn)迷津,感覺(jué)像無(wú)頭蒼蠅一樣,能不能用偽代碼寫一下思路謝謝
問(wèn)題解答
回答1:過(guò)濾的話應(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. 在mybatis使用mysql的ON DUPLICATE KEY UPDATE語(yǔ)法實(shí)現(xiàn)存在即更新應(yīng)該使用哪個(gè)標(biāo)簽?2. mysql - 表名稱前綴到底有啥用?3. Navicat for mysql 中以json格式儲(chǔ)存的數(shù)據(jù)存在大量反斜杠,如何去除?4. mysql - 怎么生成這個(gè)sql表?5. mysql儲(chǔ)存json錯(cuò)誤6. 哭遼 求大佬解答 控制器的join方法怎么轉(zhuǎn)模型方法7. mysql - 數(shù)據(jù)庫(kù)表中,兩個(gè)表互為外鍵參考如何解決8. 編輯成功不顯示彈窗9. 怎么php怎么通過(guò)數(shù)組顯示sql查詢結(jié)果呢,查詢結(jié)果有多條,如圖。10. sql語(yǔ)句 - 如何在mysql中批量添加用戶?
