RxJava 到底是什么?
一個(gè)詞:異步。
RxJava 在 GitHub 主頁(yè)上的自我介紹是 "a library for composing asynchronous and event-based programs using observable sequences for the Java VM"(一個(gè)在 Java VM 上使用可觀測(cè)的序列來(lái)組成異步的、基于事件的程序的庫(kù))。這就是 RxJava ,概括得非常精準(zhǔn)。
其實(shí),** RxJava 的本質(zhì)可以壓縮為異步這一個(gè)詞。說(shuō)到根上,它就是一個(gè)實(shí)現(xiàn)異步操作的庫(kù),而別的定語(yǔ)都是基于這之上的。**
RxJava 好在哪
換句話說(shuō),『同樣是做異步,為什么人們用它,而不用現(xiàn)成的 AsyncTask / Handler / XXX / ... ?』
一個(gè)詞:簡(jiǎn)潔。
異步操作很關(guān)鍵的一點(diǎn)是程序的簡(jiǎn)潔性,因?yàn)樵谡{(diào)度過(guò)程比較復(fù)雜的情況下,異步代碼經(jīng)常會(huì)既難寫也難被讀懂。 Android 創(chuàng)造的 AsyncTask 和Handler ,其實(shí)都是為了讓異步代碼更加簡(jiǎn)潔。RxJava 的優(yōu)勢(shì)也是簡(jiǎn)潔,但它的簡(jiǎn)潔的與眾不同之處在于,隨著程序邏輯變得越來(lái)越復(fù)雜,它依然能夠保持簡(jiǎn)潔。
如何使用RxJava?
第一步:當(dāng)然是添加RxJava的依賴?yán)?/h2>
compile 'io.reactivex.rxjava2:rxjava:2.0.1'
compile 'io.reactivex.rxjava2:rxjava:2.0.1'