RXJAVA2.0 初识笔记(1)

2017-11-24  本文已影响0人  hi小菜芽

引入

要在Android中使用RxJava2, 先添加Gradle配置:

   compile 'io.reactivex.rxjava2:rxjava:2.1.0'
   compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
Observable 创建发送消息
   Observable  mobservable= Observable.create(new ObservableOnSubscribe<Integer>() {
            @Override
            public void subscribe(@NonNull ObservableEmitter<Integer> e) throws Exception {  
                e.onNext(1);
                e.onNext(2);
                e.onNext(3);
                e.onComplete();
             
            }
        })

Emitter:是一个发送者,它发送onNext,onComplete,onErr,三种事件
需要满足一定的规则:

Observer 创建消息接收者
Observer<Integer> observer = new Observer<Integer>() {
            @Override
            public void onSubscribe(Disposable d) {
                Log.d(TAG, "subscribe");
            }

            @Override
            public void onNext(Integer value) {
                Log.d(TAG, "" + value);
            }

            @Override
            public void onError(Throwable e) {
                Log.d(TAG, "error");
            }

            @Override
            public void onComplete() {
                Log.d(TAG, "complete");
            }
        };

建立联系

mobservable.subscribe(observer);`
创建一个observable (常用):
public static <T> Observable<T> create(ObservableOnSubscribe<T> source);
public static <T> Observable<T> just(T item)
public static <T> Observable<T> fromArray(T... items)
public static Observable<Long> interval(long initialDelay, long period, TimeUnit unit) 
//等
     Observable.just(1, 2, 3).
                subscribe(new Consumer<Integer>() {
                    @Override
                    public void accept(Integer integer) throws Exception {

                        Log.d(TAG, "onNext: " + integer);
                    }
                });
   Integer[] items = {  1, 2, 3 };
        Observable.fromArray(items).
                subscribe(new Consumer<Integer>() {
                    @Override
                    public void accept(Integer integer) throws Exception {

                        Log.d(TAG, "onNext: " + integer);
                    }
                });
订阅方法
public final Disposable subscribe() {}
public final Disposable subscribe(Consumer<? super T> onNext) {}
public final Disposable subscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError) {} 
public final Disposable subscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError, Action onComplete) {}
public final Disposable subscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError, Action onComplete, Consumer<? super Disposable> onSubscribe) {}
public final void subscribe(Observer<? super T> observer) {}
上一篇 下一篇

猜你喜欢

热点阅读