美文网首页Android小白_努力中Android知识Android开发经验谈
Android函数响应式编程最新RxJava-基本用法

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

作者: 秦子帅 | 来源:发表于2017-08-02 08:20 被阅读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);
    

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

    相关文章

      网友评论

      • ColaKai:楼主有没有好的项目分享我一个练练呢

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

      本文链接:https://www.haomeiwen.com/subject/zvdjlxtx.html