Android——深入浅出RxJava 1和RxAndroid(一)

关于RxJava和RxAndroid,首先先想到是为什么要用它呢?原因有4点

1.RxJava能提高工作效率。
2.RxJava能优雅解决复杂业务场景。
3.RxJava使用越来越流行。
4.RxJava屌爆了。。。

RxJava文档:https://github.com/ReactiveX/RxJava/wiki
http://reactivex.io/documentation/operators.html

RxJava中文文档:https://github.com/mcxiaoke/RxDocs

RxJava经典资料:https://github.com/lzyzsd/Awesome-RxJava(强烈推荐)

1、响应式编程:
RxJava是一种响应式编程,是一种基于异步数据流概念的编程模式。里面关键概念是一个事件,和现实生活中事件一样,一个事件可以被触发,也可以触发另一个事件,一个词概括RxJava,就是异步,RxJava 的异步实现,是通过一种扩展的观察者模式来实现的。。

2、RxJava特点

特点:
1、RxJava的jar包是小于1Mb的。
2、它是一种轻量级框架。
3、支持Java 8 lambda表达式。
4、支持java 6+ &Android 2.3+
5、支持同步和异步。

3、RxAndroid
RxAndroid其实是Rxjava针对Android平台的一个扩展,用于Android开发,提供响应式扩展组件快速、易于开发android应用程序,说白了其实就是RxJava的一部分,给android平台提供的一个库。

RxJava用Schedulers(调度器)来解决Android主线程问题,解决多线程线程问题。

之后会通过代码展现。

4、观察者模式的四大要素:

Observable(被观察者)、Observer(观察者)、subscribe(订阅)、事件。Observable 和 Observer 通过 subscribe() 方法实现订阅关系,从而 Observable 可以在需要的时候发出事件来通知 Observer。

接下来代码展示helloworld,

添加依赖:

compile 'io.reactivex:rxjava:1.0.14'
compile 'io.reactivex:rxandroid:1.0.1'
public class HelloWorld {
    public static void main(String[] args) {
        //第一步,创建被观察者
        Observable observable=Observable.create(new Observable.OnSubscribe<String>(){

            @Override
            public void call(Subscriber<? super String> subscriber) {
                subscriber.onNext("Hello World");
                subscriber.onCompleted();
                //throw  new NullPointerException();
            }
        });
        //创建观察者
        Subscriber subscriber= new Subscriber<String>() {
            @Override
            public void onCompleted() {
                System.out.println("onCompleted:");
            }

            @Override
            public void onError(Throwable e) {
                System.out.println("onError:");
            }

            @Override
            public void onNext(String s) {
                System.out.println("onNext:"+s);
            }
        };
        observable.subscribe(subscriber);
    }
}

onCompleted方法和onError方法是不能同时出现的,当把注释的异常打开,是不会直线onerror的,因为已经执行过oncompleted方法,如果去掉oncompleted将会执行onError方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值