簡單學(xué)習(xí)介紹rxjava的入門使用
添加依賴包
compile'io.reactivex:rxjava:1.0.9'5
compile'io.reactivex:rxandroid:0.24.0'
簡單介紹
RxJava的強(qiáng)大之處逞怨,在于它提供了非常豐富且功能強(qiáng)悍的操作符瓣戚,通過使用和組合這些操作符凌蔬,可以完成想要的結(jié)果
通過歡迎界面介紹:
需求:app啟動(dòng)時(shí)顯示一張圖片(一般是app的logo)露懒,也就是我們所說的歡迎頁,2-3秒后自動(dòng)跳轉(zhuǎn)到主頁面砂心。
通常我們所寫代碼如下
```
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最核心的兩個(gè)東西是Observables(被觀察者懈词,事件源)和Subscribers(觀察者)。Observables發(fā)出一系列事件辩诞,Subscribers處理這些事件坎弯。這里的事件可以是任何你感興趣的東西(觸摸事件,web接口調(diào)用返回的數(shù)據(jù)。抠忘。撩炊。)
一個(gè)Observable可以發(fā)出零個(gè)或者多個(gè)事件,知道結(jié)束或者出錯(cuò)崎脉。每發(fā)出一個(gè)事件拧咳,就會(huì)調(diào)用它的Subscriber的onNext方法,最后調(diào)用Subscriber.onNext()或者Subscriber.onError()結(jié)束囚灼。
Rxjava的看起來很想設(shè)計(jì)模式中的觀察者模式骆膝,但是有一點(diǎn)明顯不同,那就是如果一個(gè)Observerble沒有任何的的Subscriber啦撮,那么這個(gè)Observable是不會(huì)發(fā)出任何事件的谭网。
Observable和Subscriber可以做任何事情
Observable可以是一個(gè)數(shù)據(jù)庫查詢,Subscriber用來顯示查詢結(jié)果赃春;Observable可以是屏幕上的點(diǎn)擊事件愉择,Subscriber用來響應(yīng)點(diǎn)擊事件;Observable可以是一個(gè)網(wǎng)絡(luò)請(qǐng)求织中,Subscriber用來顯示請(qǐng)求結(jié)果锥涕。
Observable和Subscriber是獨(dú)立于中間的變換過程的。
在Observable和Subscriber中間可以增減任何數(shù)量的map狭吼。整個(gè)系統(tǒng)是高度可組合的层坠,操作數(shù)據(jù)是一個(gè)很簡單的過程。