RxJava操作符的應(yīng)用場(chǎng)景

前言

在項(xiàng)目中使用了RxJava了冬阳,真切感受到其強(qiáng)大倘核,對(duì)比AsyncTask跌造,簡(jiǎn)直是云泥之
別。在項(xiàng)目替換Android原生的AsyncTask以及handler成使用RxJava生出感慨间聊,
實(shí)在是爽攒盈,代碼邏輯清晰極了。

注:本篇博文適合已有一定RxJava基礎(chǔ)知識(shí)閱讀哎榴。

1型豁,from操作符

這一個(gè)操作符我用的最多,那么它最佳的應(yīng)用場(chǎng)景是什么呢尚蝌?

  • 當(dāng)你有一個(gè)堆數(shù)據(jù)(Future迎变、Iterable和數(shù)組)需要處理,且處理邏輯相同時(shí)飘言。這樣說(shuō)或許有些抽象衣形,打個(gè)比喻:相信大家都配過(guò)鑰匙,假如我要配幾把同一個(gè)門(mén)的鑰匙姿鸿,那么制造這幾把鑰匙的流程都是一模一樣的谆吴。而更簡(jiǎn)潔的概括就是-----有重復(fù)性操作時(shí)就用它就準(zhǔn)沒(méi)錯(cuò)了。

2苛预,map操作符

map名詞是地圖的意思句狼,那么這樣理解這個(gè)操作符就很想不通這個(gè)操作符的 應(yīng)用場(chǎng)景了,但我們敲代碼的不可能不熟悉這一個(gè)數(shù)據(jù)結(jié)構(gòu).

在我使用這個(gè)操作符的理解中,map就是變換需要操作的數(shù)據(jù)內(nèi)容或者結(jié)構(gòu)的意思热某。所以其使用場(chǎng)景顯而易見(jiàn):當(dāng)原始數(shù)據(jù)不能滿(mǎn)足我們的需求腻菇,但我們卻需要依賴(lài)這一原始數(shù)據(jù)去獲取滿(mǎn)足我們需求的數(shù)據(jù)時(shí),那么就用它昔馋,準(zhǔn)沒(méi)錯(cuò)筹吐。
比如:我有一個(gè)圖片url集合,但我的需求卻是依次獲取到bitmap,顯示在ImageView中,那么用該操作符就能解決問(wèn)題了

官方文檔原文:
transform the items emitted by an Observable by applying a function to each item.
我的理解:
通過(guò)使用map中的方法對(duì)Observable中發(fā)射出來(lái)的所有數(shù)據(jù)進(jìn)行變換.(翻譯如有錯(cuò)誤,望指正)
ReactiveX 官方文檔-map

**ReativeX map操作符的流程示意圖**

ps:有興趣的話(huà)更希望大家看官方文檔,更加原汁原味

3,filter操作符

filter-----過(guò)濾數(shù)據(jù).這一個(gè)操作符淺顯易懂,根據(jù)一些條件過(guò)濾掉不需要的數(shù)據(jù).
比如說(shuō):*我有一個(gè)圖片url集合,我的需求是依次獲取到bitmap,一些像素不清晰的,我希望排除掉,不顯示在ImageView,而清晰的才顯示在ImageView中.

綜合三個(gè)操作符的偽代碼

Observable
.from(filePathStrS)// String[] filePathStrS :本地圖片路徑數(shù)組 
.map(new Func1<String, Bitmap>() {
    @Override
    public Bitmap call(String s) {
        return Utils.getBitmapFromFile(photoPath + s);//通過(guò)map將String變換成Bitmap
    }
})
.filter(new Func1<Bitmap, Boolean>() {
    @Override
    public Boolean call(Bitmap bitmap) {
        return bitmap != null;//篩選掉空文件
    }
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<Bitmap>() {
    @Override
    public void call(Bitmap bitmap) {//主線程顯示數(shù)據(jù)
        questionBitmapList.set(questionInPicCount, bitmap);
        QuestionShowAdapter.notifyDataSetChanged();

    }
}, new Action1<Throwable>() {
    @Override
    public void call(Throwable throwable) {
        throwable.printStackTrace();
    }
}, new Action0() {
    @Override
    public void call() {
    }
});

RxJava所學(xué)未深,后續(xù)如有學(xué)到新的操作符,將會(huì)更新
如果不合理,望不吝指正.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末秘遏,一起剝皮案震驚了整個(gè)濱河市丘薛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌垄提,老刑警劉巖榔袋,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件周拐,死亡現(xiàn)場(chǎng)離奇詭異铡俐,居然都是意外死亡凰兑,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門(mén)审丘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)吏够,“玉大人,你說(shuō)我怎么就攤上這事滩报」” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵脓钾,是天一觀的道長(zhǎng)售睹。 經(jīng)常有香客問(wèn)我,道長(zhǎng)可训,這世上最難降的妖魔是什么昌妹? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮握截,結(jié)果婚禮上飞崖,老公的妹妹穿的比我還像新娘。我一直安慰自己谨胞,他們只是感情好固歪,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著胯努,像睡著了一般牢裳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上叶沛,一...
    開(kāi)封第一講書(shū)人閱讀 49,730評(píng)論 1 289
  • 那天蒲讯,我揣著相機(jī)與錄音,去河邊找鬼恬汁。 笑死伶椿,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的氓侧。 我是一名探鬼主播脊另,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼约巷!你這毒婦竟也來(lái)了偎痛?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤独郎,失蹤者是張志新(化名)和其女友劉穎踩麦,沒(méi)想到半個(gè)月后枚赡,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡谓谦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年贫橙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片反粥。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡卢肃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出才顿,到底是詐尸還是另有隱情莫湘,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布郑气,位于F島的核電站幅垮,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏尾组。R本人自食惡果不足惜忙芒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望演怎。 院中可真熱鬧匕争,春花似錦、人聲如沸爷耀。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)歹叮。三九已至跑杭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間咆耿,已是汗流浹背德谅。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留萨螺,地道東北人窄做。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像慰技,于是被迫代替她去往敵國(guó)和親椭盏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容