前言
Rxjava
穆咐,由于其基于事件流的鏈?zhǔn)秸{(diào)用、邏輯簡(jiǎn)潔 & 使用簡(jiǎn)單的特點(diǎn)晾剖,深受各大 Android
開發(fā)者的歡迎照激。
如果還不了解RxJava发魄,請(qǐng)看文章:Android:這是一篇 清晰 & 易懂的Rxjava 入門教程
-
RxJava
如此受歡迎的原因,在于其提供了豐富 & 功能強(qiáng)大的操作符俩垃,幾乎能完成所有的功能需求 - 今天励幼,我將為大家獻(xiàn)上一份
RxJava
操作符的詳細(xì)使用攻略,希望你們會(huì)喜歡口柳。
Carson帶你學(xué)RxJava系列文章苹粟,包括 原理、操作符跃闹、應(yīng)用場(chǎng)景嵌削、背壓等等,請(qǐng)關(guān)注看文章:Android:這是一份全面 & 詳細(xì)的RxJava學(xué)習(xí)指南
目錄
1. 簡(jiǎn)介
RxJava
操作符的具體簡(jiǎn)介如下:
2. 類型
-
RxJava
功能強(qiáng)大望艺,所以其對(duì)應(yīng)的操作符的類型也非常多 - 根據(jù)功能作用的不同苛秕,RxJava的操作符分類如下:
- 下面,我將對(duì)每類的操作符進(jìn)行詳細(xì)講解
3. 操作符詳解
注:在使用RxJava 2
操作符前找默,記得在項(xiàng)目的Gradle
中添加依賴:
dependencies {
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'io.reactivex.rxjava2:rxjava:2.0.7'
// 注:RxJava2 與 RxJava1 不能共存艇劫,即依賴不能同時(shí)存在
}
3.1 創(chuàng)建操作符
作用
創(chuàng)建 被觀察者(Observable
) 對(duì)象 & 發(fā)送事件。應(yīng)用場(chǎng)景
- 類型
根據(jù)上述應(yīng)用場(chǎng)景惩激,創(chuàng)建操作符的類型包括:
具體操作符 & 應(yīng)用場(chǎng)景 詳細(xì)介紹
Android RxJava:最基礎(chǔ)的操作符詳解 - 創(chuàng)建操作符實(shí)際開發(fā)需求案例
下面店煞,我將講解創(chuàng)建操作符的1個(gè)常見實(shí)際需求案例:網(wǎng)絡(luò)請(qǐng)求輪詢
- 該例子將結(jié)合
Retrofit
和RxJava
進(jìn)行講解- 具體請(qǐng)看文章:Android RxJava 實(shí)際應(yīng)用講解:(無條件)網(wǎng)絡(luò)請(qǐng)求輪詢
3.2 變換操作符
- 作用
對(duì)事件序列中的事件 / 整個(gè)事件序列 進(jìn)行加工處理(即變換),使得其轉(zhuǎn)變成不同的事件 / 整個(gè)事件序列 - 具體原理
應(yīng)用場(chǎng)景
嵌套回調(diào)(Callback hell
)-
類型
根據(jù)上述應(yīng)用場(chǎng)景风钻,常見的變換操作符類型包括:
具體操作符 & 應(yīng)用場(chǎng)景 詳細(xì)介紹
Android RxJava:圖文詳解 變換操作符實(shí)際開發(fā)需求案例
下面顷蟀,我將講解變換操作符的1個(gè)常見實(shí)際需求案例:網(wǎng)絡(luò)請(qǐng)求嵌套回調(diào)
- 該例子將結(jié)合
Retrofit
和RxJava
進(jìn)行講解- 具體請(qǐng)看文章:Android RxJava 實(shí)際應(yīng)用講解:網(wǎng)絡(luò)請(qǐng)求嵌套回調(diào)
3.3 組合 / 合并操作符
作用
組合 多個(gè)被觀察者(Observable
) & 合并需要發(fā)送的事件-
應(yīng)用場(chǎng)景
- 組合多個(gè)被觀察者
- 合并多個(gè)事件
- 發(fā)送事件前追加發(fā)送事件
- 統(tǒng)計(jì)發(fā)送事件數(shù)量
-
類型
根據(jù)上述應(yīng)用場(chǎng)景,常見的組合 / 合并操作符 主要有:
具體操作符 & 應(yīng)用場(chǎng)景 詳細(xì)介紹
Android RxJava:組合 / 合并操作符 詳細(xì)教程實(shí)際開發(fā)需求案例
下面骡技,我將講解組合操作符的常見實(shí)際需求案例
該例子將結(jié)合
Retrofit
和RxJava
進(jìn)行講解
- Android RxJava 實(shí)際應(yīng)用講解:合并數(shù)據(jù)源
- Android RxJava 實(shí)際應(yīng)用講解:從磁盤 / 內(nèi)存緩存中 獲取緩存數(shù)據(jù)
- Android RxJava 實(shí)際應(yīng)用講解:聯(lián)合判斷
3.4 功能性操作符
作用
輔助被觀察者(Observable
) 在發(fā)送事件時(shí)實(shí)現(xiàn)一些功能性需求實(shí)際應(yīng)用場(chǎng)景
- 連接(訂閱) 觀察者 & 被觀察者
- 線程調(diào)度(切換)
- 錯(cuò)誤處理
- 事件生命周期操作
- 延時(shí)操作
- 重復(fù)發(fā)送操作
-
類型
根據(jù)上述應(yīng)用場(chǎng)景鸣个,常見的功能性操作符 主要有:
具體操作符 & 應(yīng)用場(chǎng)景 詳細(xì)介紹
Android RxJava:功能性操作符 全面講解實(shí)際開發(fā)需求案例
下面,我將講解組合操作符的常見實(shí)際需求案例
該例子將結(jié)合
Retrofit
和RxJava
進(jìn)行講解
- Android RxJava:細(xì)說 線程控制(切換 / 調(diào)度 )(含Retrofit實(shí)例講解)
- Android RxJava 實(shí)際應(yīng)用講解:網(wǎng)絡(luò)請(qǐng)求出錯(cuò)重連(結(jié)合Retrofit)
- Android RxJava 實(shí)際應(yīng)用講解:(有條件)網(wǎng)絡(luò)請(qǐng)求輪詢(結(jié)合Retrofit)
3.5 過濾操作符
作用
過濾 / 篩選 被觀察者(Observable
)發(fā)送的事件 & 觀察者 (Observer
)接收的事件-
應(yīng)用場(chǎng)景
- 根據(jù) 指定條件 過濾事件
- 根據(jù) 指定事件數(shù)量 過濾事件
- 根據(jù) 指定時(shí)間 過濾事件
- 根據(jù) 指定事件位置 過濾事件
-
類型
根據(jù)上述應(yīng)用場(chǎng)景布朦,常見的過濾操作符 主要有:
具體操作符 & 應(yīng)用場(chǎng)景 詳細(xì)介紹
Android RxJava:過濾操作符 全面講解實(shí)際開發(fā)需求案例
下面囤萤,我將講解組合操作符的常見實(shí)際需求案例
該例子將結(jié)合
Retrofit
和RxJava
進(jìn)行講解
3.6 條件 / 布爾操作符
- 作用
通過設(shè)置函數(shù),判斷被觀察者(Observable
)發(fā)送的事件是否符合條件
- 類型
RxJava2
中喝滞,條件 / 布爾操作符的類型包括:
- 具體操作符詳解
Android RxJava:詳解 條件 / 布爾操作符
至此,關(guān)于RxJava 2
中的操作符講解完畢膏秫。
4. 總結(jié)
- 本文主要對(duì)
RxJava2
中常用的所有類型操作符進(jìn)行了詳細(xì)介紹右遭,下面用1張圖進(jìn)行總結(jié)
- Carson帶你學(xué)RxJava系列文章:
入門
Carson帶你學(xué)Android:這是一篇清晰易懂的Rxjava入門教程
Carson帶你學(xué)Android:面向初學(xué)者的RxJava使用指南
Carson帶你學(xué)Android:RxJava2.0到底更新了什么做盅?
原理
Carson帶你學(xué)Android:圖文解析RxJava原理
Carson帶你學(xué)Android:手把手帶你源碼分析RxJava
使用教程:操作符
Carson帶你學(xué)Android:RxJava操作符教程
Carson帶你學(xué)Android:RxJava創(chuàng)建操作符
Carson帶你學(xué)Android:RxJava功能性操作符
Carson帶你學(xué)Android:RxJava過濾操作符
Carson帶你學(xué)Android:RxJava組合/合并操作符
Carson帶你學(xué)Android:RxJava變換操作符
Carson帶你學(xué)Android:RxJava條件/布爾操作符
實(shí)戰(zhàn)
Carson帶你學(xué)Android:什么時(shí)候應(yīng)該使用Rxjava?(開發(fā)場(chǎng)景匯總)
Carson帶你學(xué)Android:RxJava線程控制(含實(shí)例講解)
Carson帶你學(xué)Android:圖文詳解RxJava背壓策略
Carson帶你學(xué)Android:RxJava窘哈、Retrofit聯(lián)合使用匯總(含實(shí)例教程)
Carson帶你學(xué)Android:優(yōu)雅實(shí)現(xiàn)網(wǎng)絡(luò)請(qǐng)求嵌套回調(diào)
Carson帶你學(xué)Android:網(wǎng)絡(luò)請(qǐng)求輪詢(有條件)
Carson帶你學(xué)Android:網(wǎng)絡(luò)請(qǐng)求輪詢(無條件)
Carson帶你學(xué)Android:網(wǎng)絡(luò)請(qǐng)求出錯(cuò)重連(結(jié)合Retrofit)
Carson帶你學(xué)Android:合并數(shù)據(jù)源
Carson帶你學(xué)Android:聯(lián)想搜索優(yōu)化
Carson帶你學(xué)Android:功能防抖
Carson帶你學(xué)Android:從磁盤/內(nèi)存緩存中獲取緩存數(shù)據(jù)
Carson帶你學(xué)Android:聯(lián)合判斷
歡迎關(guān)注Carson_Ho的簡(jiǎn)書
不定期分享關(guān)于安卓開發(fā)的干貨吹榴,追求短、平滚婉、快图筹,但卻不缺深度。