RxJava的基本用法
just()方式Observable<String> observable = Observable.just("Hello");
使用just( ),將爲你創建一個Observable並自動爲你調用onNext( )發射數據。通過just( )方式 直接觸發onNext(),just中傳遞的參數將直接在Observer的onNext()方法中接收到
fromIterable()方式
List<String> list = new ArrayList<String>();
for(int i =0;i<10;i++){
list.add("Hello"+i);
}
Observable<String> observable = Observable.fromIterable((Iterable<String>) list);
使用fromIterable(),遍歷集合,發送每個item。相當於多次回調onNext()方法,每次傳入一個item。
注意:Collection接口是Iterable接口的子接口,所以所有Collection接口的實現類都可以作爲Iterable對象直接傳入fromIterable()方法。
defer()方式
Observable<String> observable = Observable.defer(new Callable<ObservableSource<? extends String>>() {
@Override
public ObservableSource<? extends String> call() throws Exception {
return Observable.just("hello");
}
});
當觀察者訂閱時,才創建Observable,並且針對每個觀察者創建都是一個新的Observable。以何種方式創建這個Observable對象,當滿足回調條件後,就會進行相應的回調。
interval( )方式
Observable<String> observable = Observable.interval(2, TimeUnit.SECONDS);
創建一個按固定時間間隔發射整數序列的Observable,可用作定時器。即按照固定2秒一次調用onNext()方法。
range( )方式
Observable<Integer> observable = Observable.range(1,20);
創建一個發射特定整數序列的Observable,第一個參數爲起始值,第二個爲發送的個數,如果爲0則不發送,負數則拋異常。上述表示發射1到20的數。即調用20次nNext()方法,依次傳入1-20數字。
timer( )方式
Observable<Integer> observable = Observable.timer(2, TimeUnit.SECONDS);
創建一個Observable,它在一個給定的延遲後發射一個特殊的值,即表示延遲2秒後,調用onNext()方法。
repeat( )方式
Observable<Integer> observable = Observable.just(123).repeat();
創建一個Observable,該Observable的事件可以重複調用。
除了Observable(被觀察者)的創建之外,RxJava 2.x 還提供了多個函數式接口 ,用於實現簡便式的觀察者模式。具體的函數式接口包括以下:
以Consumer爲例,我們可以實現簡便式的觀察者模式:
Observable.just("hello").subscribe(new Consumer<String>() {
@Override
public void accept(String s) throws Exception {
System.out.println(s);
}
});
其中Consumer中的accept()方法接收一個來自Observable的單個值。Consumer就是一個觀察者。其他函數式接口可以類似應用。
摘自:https://www.jianshu.com/p/d149043d103a