簡單學習介紹rxjava的入門使用
添加依賴包
compile'io.reactivex:rxjava:1.0.9'5
compile'io.reactivex:rxandroid:0.24.0'
簡單介紹
RxJava的強大之處,在于它提供了非常豐富且功能強悍的操作符,通過使用和組合這些操作符,可以完成想要的結果
通過歡迎界面介紹:
需求:app啟動時顯示一張圖片(一般是app的logo),也就是我們所說的歡迎頁,2-3秒后自動跳轉到主頁面。
通常我們所寫代碼如下
```
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
ImageView view = (ImageView) findViewById(R.id.iv_welcome);
view.setImageResource(R.drawable.welcome);
Handler handler =newHandler();
handler.postDelayed(newRunnable() {
@Override
publicvoidrun() {
startActivity(newIntent(WelcomeActivity.this, MainActivity.class));
finish();
}
},2000);
```
rxjava代碼如下:
rxJava最核心的兩個東西是Observables(被觀察者,事件源)和Subscribers(觀察者)。Observables發出一系列事件,Subscribers處理這些事件。這里的事件可以是任何你感興趣的東西(觸摸事件,web接口調用返回的數據。。。)
一個Observable可以發出零個或者多個事件,知道結束或者出錯。每發出一個事件,就會調用它的Subscriber的onNext方法,最后調用Subscriber.onNext()或者Subscriber.onError()結束。
Rxjava的看起來很想設計模式中的觀察者模式,但是有一點明顯不同,那就是如果一個Observerble沒有任何的的Subscriber,那么這個Observable是不會發出任何事件的。
Observable和Subscriber可以做任何事情
Observable可以是一個數據庫查詢,Subscriber用來顯示查詢結果;Observable可以是屏幕上的點擊事件,Subscriber用來響應點擊事件;Observable可以是一個網絡請求,Subscriber用來顯示請求結果。
Observable和Subscriber是獨立于中間的變換過程的。
在Observable和Subscriber中間可以增減任何數量的map。整個系統是高度可組合的,操作數據是一個很簡單的過程。