Android RxJava的初次使用

        早就听说RxJava很牛X ,也一直想去研究一下,买了一些大佬的书,介绍了一下RxJava的基本操作,但是奈何作为小白,理解能力有限只能自己边敲边领会喽,先学会使用,再去了解源码,是我的学习方法之一。看的再多,敲不出代码的都是扯淡。好了,不扯犊子了,开始撸一把吧!

一 . 首先,我们要差不多了解观察者模式吧,自己不理解的去看看EventBus的源码,大概就能搞得清楚。然后我们开始从对象说起吧,有观察者就有被观察者,那么如何获取被观察者的对象呢?我们通过制作第一个案例,被观察者发射一些数据,而我们的观察者接收一些数据,是否能够成功,实践出来再说吧!

       1.创建被观察者,并且发射一些数据

//  1. 创建被观察者 Observable 对象 ,别说自己不会,很多代码都是自己生成的
Observable<String> observable = Observable.create(new ObservableOnSubscribe<String>() {

   
    @Override
    public void subscribe(ObservableEmitter<String> emitter) throws Exception {
        // 被观察者发射数据
        emitter.onNext("我是你大爷");
        emitter.onNext("我是你二大爷");
        emitter.onNext("我是你三大爷");
        emitter.onNext("我是你四大爷");
        emitter.onComplete();

    }
});

 2.创建观察者对象,并且处理接受的数据。

//创建观察者对象
Observer<String> observer = new Observer<String>() {
    @Override
    public void onSubscribe(Disposable d) {
        Log.d(TAG, "开始采用subscribe连接");
    }

    @Override
    public void onNext(String value) {
        Log.d(TAG, "对Next事件"+ value +"作出响应"  );
    }


    @Override
    public void onError(Throwable e) {
        Log.d(TAG, "对Error事件作出响应");
    }

    @Override
    public void onComplete() {
        Log.d(TAG, "对Complete事件作出响应");
    }
};

3.订阅事件(为啥是被观察者订阅观察者,我也不知道先学会使用喽)

observable.subscribe(observer);

二. 具体代码如下

public class UseRxJava extends AppCompatActivity{




    private static final String TAG = "UseRxJava";


    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        Button button = (Button) findViewById(R.id.list);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                establistObserverable();

            }
        });

    }

    private static void establistObserverable(){


        //  1. 创建被观察者 Observable 对象
        Observable<String> observable = Observable.create(new ObservableOnSubscribe<String>() {

          
            @Override
            public void subscribe(ObservableEmitter<String> emitter) throws Exception {

                emitter.onNext("我是你大爷");
                emitter.onNext("我是你二大爷");
                emitter.onNext("我是你三大爷");
                emitter.onNext("我是你四大爷");
                emitter.onComplete();

            }
        });


        //创建观察者对象
        Observer<String> observer = new Observer<String>() {
            @Override
            public void onSubscribe(Disposable d) {
                Log.d(TAG, "开始采用subscribe连接");
            }

            @Override
            public void onNext(String value) {
                Log.d(TAG, "对Next事件"+ value +"作出响应"  );
            }


            @Override
            public void onError(Throwable e) {
                Log.d(TAG, "对Error事件作出响应");
            }

            @Override
            public void onComplete() {
                Log.d(TAG, "对Complete事件作出响应");
            }
        };


        observable.subscribe(observer);
    }

三. 我依赖的版本如下,大家可以体验一下

implementation 'io.reactivex.rxjava2:rxjava:2.0.1'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'

 

四 .持续更新学习中……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值