新四季網

java 的optional api 介紹和實戰(一個工程帶你學會簡單使用RxJava)

2023-04-16 17:29:50 1

CaptainAndroid.png

寫了一個工程,大概分六個demo.java帶你學習如何使用,通熟易懂,很明顯,是我這個菜鳥寫的。

RxJava是什麼?

RxJava 在 GitHub 主頁上的自我介紹是 "a library for composing asynchronous and event-based programs using observable sequences for the Java VM"(一個在 Java VM 上使用可觀測的序列來組成異步的、基於事件的程序的庫)。這就是 RxJava。

簡單的來說, RxJava 的本質可以壓縮為異步這一個詞。說到根上,它就是一個實現異步操作的庫,而別的定語都是基於這之上的。

RxJava的好處

簡潔、美觀

異步操作很關鍵的一點是程序的簡潔性,因為在調度過程比較複雜的情況下,異步代碼經常會既難寫也難被讀懂。 Android 的framework為我們創造的 AsyncTask 和Handler ,其實都是為了讓異步代碼更加簡潔。RxJava 的優勢也是簡潔,但它的簡潔的與眾不同之處在於,隨著程序邏輯變得越來越複雜,它依然能夠保持簡潔。

rxjava1.jpg

使用

通過閱讀以下代碼連結,會一步一步的知道RxJava是如何使用的。

個人建議把我工程拉下來看,直接運行看log比較有感覺。

工程連結:https://github.com/Jerey-Jobs/RxJavaDemos

第一章:數據的發射與接收

第一章代碼:數據的發射與接收

通過創建observable與observer

再通過 observable.subscribe(observer); 進行數據發布,實現簡單的訂閱關係。

具體見代碼。

/**

第二章:通過filter 控制篩選 通過map轉換格式

第二章代碼:通過filter 控制篩選 通過map轉換格式

通過Observable.just(1, 2, 3, 4, 5),然後使用.filter進行數據篩選 .map進行數據的格式轉換的demo。

第三章:Scheduler 線程控制

第三章代碼:Scheduler 線程控制

*

Schedulers.immediate: 直接在當前線程運行,相當於不指定線程。這是默認的 Scheduler。

Schedulers.newThread: 總是啟用新線程,並在新線程執行操作。

Schedulers.io: I/O 操作(讀寫文件、讀寫資料庫、網絡信息交互等)所使用的 Scheduler

行為模式和 newThread 差不多,區別在於 io 的內部實現是是用一個無數量上限的線程池,可以重用空閒的線程,因此多數情況下 io 比 newThread 更有效率。不要把計算工作放在 io 中,可以避免創建不必要的線程。

Schedulers.computation: 計算所使用的 Scheduler。這個計算指的是 CPU 密集型計算,即不會被 I/O 等操作限制性能的操作,例如圖形的計算。這個 Scheduler 使用的固定的線程池,大小為 CPU 核數。不要把 I/O 操作放在 computation 中,否則 I/O 操作的等待時間會浪費 CPU。

另外, Android 還有一個專用的 AndroidSchedulers.mainThread,它指定的操作將在 Android 主線程運行。

/**

public class Demo3 { public static final String TAG = "Demo3"; public static void test {

第四章:學會使用lift轉變類型

第四章代碼:學會使用lift轉變類型

第五章:學會使用Observable.Transformer 改變自身屬性

第五章代碼:學會使用Observable.Transformer 改變自身屬性

Observable.Transformer transformer = new Observable.Transformer { @Override

第六章:學會簡單使用Retrofit

第六章代碼:學會使用Retrofit

@Override

/**

了解更多網絡安全動態、乾貨、熱點資訊,請關注微信公眾號「e安在線」!

本文作者:Anderson/Jerey_Jobs

簡書地址 : Anderson大碼渣

,
同类文章
葬禮的夢想

葬禮的夢想

夢見葬禮,我得到了這個夢想,五個要素的五個要素,水火只好,主要名字在外面,職業生涯良好,一切都應該對待他人治療誠意,由於小,吉利的冬天夢想,秋天的夢是不吉利的
找到手機是什麼意思?

找到手機是什麼意思?

找到手機是什麼意思?五次選舉的五個要素是兩名士兵的跡象。與他溝通很好。這是非常財富,它擅長運作,職業是仙人的標誌。單身男人有這個夢想,主要生活可以有人幫忙
我不怎麼想?

我不怎麼想?

我做了什麼意味著看到米飯烹飪?我得到了這個夢想,五線的主要土壤,但是Tu Ke水是錢的跡象,職業生涯更加真誠。他真誠地誠實。這是豐富的,這是夏瑞的巨星
夢想你的意思是什麼?

夢想你的意思是什麼?

你是什​​麼意思夢想的夢想?夢想,主要木材的五個要素,水的跡象,主營業務,主營業務,案子應該抓住魅力,不能疏忽,春天夢想的吉利夢想夏天的夢想不幸。詢問學者夢想
拯救夢想

拯救夢想

拯救夢想什麼意思?你夢想著拯救人嗎?拯救人們的夢想有一個現實,也有夢想的主觀想像力,請參閱週宮官方網站拯救人民夢想的詳細解釋。夢想著敵人被拯救出來
2022愛方向和生日是在[質量個性]中

2022愛方向和生日是在[質量個性]中

[救生員]有人說,在出生88天之前,胎兒已經知道哪天的出生,如何有優質的個性,將走在什麼樣的愛情之旅,將與生活生活有什么生活。今天
夢想切割剪裁

夢想切割剪裁

夢想切割剪裁什麼意思?你夢想切你的手是好的嗎?夢想切割手工切割手有一個真正的影響和反應,也有夢想的主觀想像力。請參閱官方網站夢想的細節,以削減手
夢想著親人死了

夢想著親人死了

夢想著親人死了什麼意思?你夢想夢想你的親人死嗎?夢想有一個現實的影響和反應,還有夢想的主觀想像力,請參閱夢想世界夢想死亡的親屬的詳細解釋
夢想搶劫

夢想搶劫

夢想搶劫什麼意思?你夢想搶劫嗎?夢想著搶劫有一個現實的影響和反應,也有夢想的主觀想像力,請參閱週恭吉夢官方網站的詳細解釋。夢想搶劫
夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂什麼意思?你夢想缺乏異常藥物嗎?夢想缺乏現實世界的影響和現實,還有夢想的主觀想像,請看官方網站的夢想組織缺乏異常藥物。我覺得有些東西缺失了