Android帝國—四大天王(RxAndroid) 3

這裏我們繼續上一次的分享,在結束的時,因爲有點困,所以草草地結束上一次的分享,有關最後拿出來的實例,沒有解釋最後代碼。 

先說一下,這段代碼由來,也就是他幹了些什麼,進行一次 GET 請求,然後將返回的數據打印在控制檯中,這是他任務,我們這裏的請求用的 OKHttp 庫,這裏有關 OKhttp 的使用,隨後爲大家分享,這裏簡單地介紹一下如何使用他來創建一次請求。步驟如下,先創建一個客戶端  mClient ,然後就開始構建我們的請求,request 包含請求方式,請求地質,請求參數等等,最後用 mclient 發一起 call,call 我們創建好的 request,就完成一次請求。

我們把整個請求包裹在(圖)一個可觀察的對象(Observable)對象中,具體觀察啥呢,觀察請求返回的數據,觀察請求是否完成,觀察是否發生錯誤。這一切都是在藍色標記的代碼中完成的。

黃色部分的代碼是觀察者(也可以理解爲訂閱者),就是在我們接收到這些信息後,是定義如何處理這些數據或信息的。

訂閱後會返回對象(綠色線標記 code),他是一個訂閱憑證,我們拿着憑證可以隨時地取消訂閱,以避免在我們不需要數據或信息時,可以及時取消訂閱。

這裏有一個加餐,就是 emitter.setCancellable 發射器方法讓我們可以取消訂閱時,取消對網絡請求。

好有關如何創建事件源,也就是創建一個 observable 。我們現在有了一些瞭解了吧,我們標準事件源會發送什麼(大禮包),數據,錯誤信息,是否完成發送(結束)和訂閱取消的憑證。但是這裏有些是我們不需要的信息,我們可能僅會用到一個或兩個的信息。那麼爲了滿足大家的不同的口味。

RxAndroid 爲我們提供許多事件源的類型供您選擇,這裏 y 軸是按他返回哪些信息進行分類,x 軸按是否有背壓進行了分類。

知識是相互關聯了的,解釋這個問題前,我們可能會用到一些相關的知識,那麼先對相關知識進行解釋一下,以便您更好地理解下面內容。就是 RxAndroid 操作符,那麼什麼是 RxAndroid 中的操作符,他們幹什麼用的。事件源發出數據,多數情況我們需要對這些數據進行加工,篩選才能爲我們所用。操作符就是幫助我們對數據進行處理和篩選的工具。

我們先看第一個場景,有時候我們只需要第一個數據,這時就可以用 first() 來獲取,想一想他會返回第一個數據嗎?當然不會了,要不也太low了。返回也是可觀察的對象,這個對象攜帶者第一個數據作爲他數據源,但是如果返回的是一個數據 。就需要接受到一個 complete 表示是否完成的信息了吧,我們就一個對象,得到了就完成。所以在 RxAndroid2 會返回一個 Single 來代替 Observable ,看錶在 Single 中只有 item 和 error 沒有了多餘 complete,簡潔了一定好處,我們其實應該做的不是添加功能浪費用戶精力,應該簡化功能。

當我們只關注異步事件不否結束時候,而不管具體發送了什麼數據時候我們就可以用 Completable 來代替傳統的 Observable ,然後只需要處理 complete 和 error 對象了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章