RxJava

来源:互联网 发布:知乎机构号注册流程 编辑:程序博客网 时间:2024/06/06 06:46
一、创建Observable,Observer ,建立连接observable.subscribe(observer);

1、添加依赖
compile 'io.reactivex.rxjava2:rxjava:2.0.1'compile 'io.reactivex.rxjava2:rxandroid:2.0.1'


private String TAG="MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Observable<Integerobservable=Observable.create(new ObservableOnSubscribe<Integer>() {
        @Override
        public void subscribe(ObservableEmitter<Integerethrows Exception {
            e.onNext(1);
            e.onNext(2);
            e.onNext(3);
            e.onComplete();
        }
    });


    Observer observer=new Observer() {
        @Override
        public void onSubscribe(Disposable d) {

            Log.e(TAG,"onSubscribe");
        }

        @Override
        public void onNext(Object value) {

            Log.e(TAG,"value:--"+value);

        }

        @Override
        public void onError(Throwable e) {

        }

        @Override
        public void onComplete() {

            Log.e(TAG,"onComplete");
        }
    };


    observable.subscribe(observer);
}

二、执行顺序
08-06 10:17:54.468 14600-14600/chzy.org.rxjava E/MainActivity: onSubscribe
08-06 10:17:54.469 14600-14600/chzy.org.rxjava E/MainActivity: value:--1
08-06 10:17:54.469 14600-14600/chzy.org.rxjava E/MainActivity: value:--2
08-06 10:17:54.469 14600-14600/chzy.org.rxjava E/MainActivity: value:--3
08-06 10:17:54.469 14600-14600/chzy.org.rxjava E/MainActivity: onComplete

三、链式
Observable.create(new ObservableOnSubscribe<Integer>() {    @Override    public void subscribe(ObservableEmitter<Integer> e) throws Exception {        e.onNext(1);        e.onNext(2);        e.onNext(3);        e.onComplete();    }}) .subscribe(new Observer<Integer>() {    @Override    public void onSubscribe(Disposable d) {        Log.e(TAG,"onSubscribe");    }    @Override    public void onNext(Integer value) {        Log.e(TAG,"value:--"+value);    }    @Override    public void onError(Throwable e) {        Log.e(TAG,"onError");    }    @Override    public void onComplete() {        Log.e(TAG,"onComplete");    }});