RxJava

rxjava它就是一個實現(xiàn)異步操作的庫.同樣是做異步,為什么人們用它,而不用現(xiàn)成的 AsyncTask / Handler / XXX /異步操作很關(guān)鍵的一點是程序的簡潔性.它和普通的觀察者完全不同標準觀察者模式只有一個被觀察者 多個觀察者并且被觀察者改變通知觀察者才能掛查到。RxJava 中是多個被觀察者一個觀察者,并且需要起點和終點訂閱一次后,才發(fā)出改變通知,終點(觀察者)才能察覺到,所以也叫訂閱模式


1.Observer 四個接口? onSubscribe? onNext onError? onComplete?

2.Observable創(chuàng)建過程ObSservable.creat()里面放一個自定義的Source

3.subscribe 訂閱流程 observableCreate.subscribe() 里面放自定義的觀察者observer

方法里面調(diào)用subscribeActual();從右往左再從左向右 U型結(jié)構(gòu)



rxJava的Hook

每一個操作符的實現(xiàn)都有 RxJavaPlugins.onAssembly() 方法進去的參數(shù)和返回的參數(shù)是一樣的。中間有個默認為空的onObserableAssembly可以為其賦值實現(xiàn)Hook。

關(guān)于Map的分析


tip

1.rxjava 引入為什么還要rxandroid? (補全rxjava) 線程切換用的rxandroid

.oobserverOn(Schedulers.io)//給上面的分配io子線程線程 里面的返回和上面的hook一樣我們可以重寫方法hook用于監(jiān)聽io線程使用次數(shù)?;蛘咂渌?/p>

.observerOn(Android.mainThread)主線程


Rxjava+Retryfit結(jié)合

retryfit 運用動態(tài)代理? 以及注解 和反射 在寫接口的時候返回observiable和rxjava融合成為起點。動態(tài)代理操作單元: 接口? 實現(xiàn)? ?代理? 接口傳入代理類卡返回實例化的數(shù)據(jù)。

rxbinding(防抖)

rxview.click(控件id).throttleFirst(2s,1次).subscribe()......

解決網(wǎng)絡嵌套(flatmap)


doOnnext()


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容