RxJavaRxAndroid入門資料 基本方法

Rxjava

1.引入依賴

github地址:

https://github.com/ReactiveX/RxJava 
https://github.com/ReactiveX/RxAndroid 


compile 'io.reactivex:rxjava:1.0.14' 
compile 'io.reactivex:rxandroid:1.0.1'

 

鏈接地址

http://gank.io/post/560e15be2dca930e00da1083#toc_1

調度器:

RxJava中,Scheduler ——調度器,相當於線程控制器,RxJava通過它來指定每一段代碼應該運行在什麼樣的線程。RxJava已經內置了幾個 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主線程運行。

有了這幾個 Scheduler ,就可以使用 subscribeOn()  observeOn() 兩個方法來對線程進行控制了。

· subscribeOn():指定 subscribe() 所發生的線程,即 Observable.OnSubscribe 被激活時所處的線程。或者叫做事件產生的線程。

· observeOn():指定 Subscriber 所運行在的線程。或者叫做事件消費的線程。

 

 

//Rxlifecycle
compile 'com.trello:rxlifecycle:0.3.0'
compile 'com.trello:rxlifecycle-components:0.3.0'


Activity/Fragment需繼承RxAppCompatActivity/RxFragment,目前支持的有RxAppCompatActivity、RxFragment、RxDialogFragment、RxFragmentActivity。

一、bindToLifecycle()方法

在子類使用Observable中的compose操作符,調用,完成Observable發佈的事件和當前的組件綁定,實現生命週期同步。從而實現當前組件生命週期結束時,自動取消對Observable訂閱。

二、bindUntilEvent()方法

使用ActivityEvent類,其中的CREATE、START、 RESUME、PAUSE、STOP、 DESTROY分別對應生命週期內的方法。使用bindUntilEvent指定在哪個生命週期方法調用時取消訂閱。

 

 

http://www.cnblogs.com/liulipeng/p/5046623.html

一篇容易學習的RxJava1 --- RxJava2  的優秀教程很形象

https://juejin.im/user/573dba2171cfe448aa97b7b0

發佈了27 篇原創文章 · 獲贊 11 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章