Android小白_努力中Android知识Android开发经验谈

Android函数响应式编程最新RxJava-基本用法

2017-08-02  本文已影响292人  秦子帅

函数响应式编程

函数响应式编程是一种编程范式,可以极大的简化项目,特别是处理嵌套回调的异步时间、复杂的列表过滤和变换或者时间的相关问题.而RxJava就是函数响应式编程的重要框架。

RxJava简述

我们在Github上搜索RxJava时,我们会发现,显示的是ReactiveX/RxJava,因为RxJava是ReactiveX的一种Java的一种实现,ReactiveX的全名是Reactive Extensions,简写为Rx. Github对RxJava的描述为" a library for composing asynchronous and event-based programs using observable sequences for the Java VM.",开发者可以用Observables表示异步数据流,用Schedulers参数化异步数据流的并发处理,其实RxJava就是一个实现异步操作的库。

RxJava的好处

我们原来在做异步操作时,都是用Android的AsyncTask和Handler,这样会使得项目越来越复杂,而RxJava却能够保持清晰的逻辑。RxJava原理是创建一个Observable,使用各种操作符来建立起链式操作,最后发射给Subscruber处理.(RxJava有4个角色:Observable、Observer、Subscruber、subject)。

RxJava的基本实现

在项目Gradle:

 compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
 compile 'io.reactivex.rxjava2:rxjava:2.1.0'

Rxjava基本用法:

1.创建Observer(观察者):

//创建一个观察者Observer
    Observer<String> observer=new Observer<String>() {
        @Override
        public void onSubscribe(@NonNull Disposable d) {
            Log.e(TAG,"onSubscribe"+d);
        }

        @Override
        public void onNext(@NonNull String s) {

            Log.e(TAG,"onNext"+s);

        }

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

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

上面的四个方法是必须要完成的,onError是时间异常。onNext表示普通的事件,将要处理的事件添加到时间队列中。 onComplete表示事件的完结。

2.创建Observable(被观察者)

    //创建被观察者,Observable
    Observable<String> observable=Observable.create(new ObservableOnSubscribe<String>() {
        @Override
        public void subscribe(@NonNull ObservableEmitter<String> e) throws Exception {
            //这是将时间添加到队列的其中一种方式
            Log.e(TAG,"发送");
            e.onNext("hello");  //发送的字符串
            e.onComplete();//发送完成


        //   subscriber.onComplete();
        }
    });

将事件添加到任务队列有三种方法,上面是第一种。第二种是通过just方法来添加代码如下:

  observable=Observable.just("hello");

第三种方式from方法来实现,代码如下所示:

 String [] s={"hello"};
 observable=Observable.fromArray(s); 

3.Subscribe(订阅)

   observable.subscribe(observer);

就介绍到这,我会持续更新的...希望大家关注,一起进步!

上一篇下一篇

猜你喜欢

热点阅读