android - rxjava多線程并發(fā)怎么控制順序
問題描述
需求是從服務(wù)器獲取聊天列表,然后遍歷獲取聊天記錄,我這里用了Observable.from(conversations)然后對(duì)conversation插入本地?cái)?shù)據(jù)庫,并且過濾得到需要的數(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... 但是使用上沒例子不太懂)剛開始是onNext里面處理下一步驟,然后我就用flatMap處理了,但是還是發(fā)射完成就結(jié)束了,沒有等onNext執(zhí)行完,而且感覺doOnNext和flatMap是一樣的,希望能夠指點(diǎn)迷津,感覺像無頭蒼蠅一樣,能不能用偽代碼寫一下思路謝謝
問題解答
回答1:過濾的話應(yīng)該用Filter這個(gè)操作符吧
回答2:用這個(gè)操作符concatMap可以保證線程執(zhí)行的順序不會(huì)錯(cuò)亂!
回答3:Obserable.fromCallable() .filter() .subscribe(io) .obserableOn(ui) .subscribe(action) 如果是需要將過濾的數(shù)據(jù)重新保存 Obserable data = Obserable.fromCallable() .filter() .subscribe(io) .share(); data.obserableon(io) .subscribe(數(shù)據(jù)庫) data.obserableOn(ui) .subscribe(更新)
相關(guān)文章:
1. mysql - sql 左連接結(jié)果union右連接結(jié)果,導(dǎo)致重復(fù)性計(jì)算怎么解決?2. PHP訂單派單系統(tǒng)3. python中def定義的函數(shù)加括號(hào)和不加括號(hào)的區(qū)別?4. mysql 遠(yuǎn)程連接出錯(cuò)10060,我已經(jīng)設(shè)置了任意主機(jī)了。。。5. python的正則怎么同時(shí)匹配兩個(gè)不同結(jié)果?6. 怎么能做出標(biāo)簽切換頁的效果,(文字內(nèi)容隨動(dòng))7. php多任務(wù)倒計(jì)時(shí)求助8. 數(shù)組排序,并把排序后的值存入到新數(shù)組中9. 默認(rèn)輸出類型為json,如何輸出html10. mysql時(shí)間格式問題
