Android中RxJava使用1----基本原理
阿新 • • 發佈:2018-12-17
簡單說就是:一個被觀察者,一個(或多個)觀察者,被觀察者給觀察者發訊息。 具體就是: 1)Observable:被觀察者(主題Subject) 2)Observer/Subscriber :觀察者 3)Subscribe:訂閱(就是被觀察者給觀察者發訊息) Observable 和 Observer 通過 subscribe() 方法實現訂閱關係 具體實現步驟 1、在build.gradle中新增依賴:
compile 'com.jakewharton.rxbinding:rxbinding:0.4.0'
這個依賴包中包含了 rxbinding-0.4.0 (操作控制元件) rxjava-1.1.0 (Java相關的) rxandroid-1.1.0 (安卓相關的)
package com.zhh.app; import android.app.Activity; import android.os.Bundle; import com.orhanobut.logger.Logger; import rx.Observable; import rx.Observer; import rx.Subscriber; /** * 第一節 * 基本使用 * 1. Observable:被觀察者(主題Subject) * 2. Observer/Subscriber :觀察者 * 3.Subscribe:訂閱(就是被觀察者給觀察者發訊息) * Observable 和 Observer 通過 subscribe() 方法實現訂閱關係 */ public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 被觀察者 Observable<String> observable = getObservable(); // 觀察者 Observer<String> observer = getObserver(); // 訂閱,實現把資料從被觀察者,傳送到觀察者 // 通常,把被觀察者和觀察者放在不同的檔案裡,收發訊息 observable.subscribe(observer); } /** * 被觀察者,發訊息 */ public Observable<String> getObservable() { Observable<String> observable = Observable.create(new Observable.OnSubscribe<String>() { @Override public void call(Subscriber<? super String> subscriber) { // 訊息是一條一條傳送的 subscriber.onNext("我"); subscriber.onNext("是"); subscriber.onNext("翟"); subscriber.onNext("浩浩"); subscriber.onCompleted(); } }); return observable; } /** * 觀察者,接收訊息 * @return */ private Observer<String> getObserver() { Observer observer = new Observer<String>() { @Override public void onCompleted() { // 完成 } @Override public void onError(Throwable e) { // 錯誤 } @Override public void onNext(String value) { // 接收訊息 // 訊息是一條一條接收的 Logger.t("111").d(value); // 打印出來的資料 // 我 // 是 // 翟 // 浩浩 } }; return observer; } }
原始碼下載: