android rxandroid异步消息处理机制

1 篇文章 0 订阅
1 篇文章 0 订阅

RxAndroid是RxJava的一个变体,它们都属于函数响应式编程

Rx表示响应式编程, 使用观察者模式, 以观察者(Observer)和订阅者(Subscriber)为基础的异步响应方式. 在Android编程时, 经常会使用异步线程处理耗时任务, RxAndroid是比较优雅的选择.

RxAndroid有什么作用呢?

1、函数响应式编程
2、异步
3、事件驱动(事件作为可观察序列)
4、基于观察者模式
5、组合式
6、专门出错处理
7、适用于处理并发问题

首先需要添加依赖:他们都源于reactivex

compile ‘io.reactivex:rxjava:1.3.0’
compile ‘io.reactivex:rxandroid:1.0.1’

下面来说下步骤:
//1、创建一个观察者 oberver(事件订阅者)
//2、创建一个被观察者实例 Observable(被观察者)
//3、让被观察者去添加订阅者 Subscription(事件订阅者)

     //1 创建一个观察者
        observer = new Observer<WaresBean>() {
            @Override
            public void onCompleted() {
                //控制进度条
            }

            @Override
            public void onError(Throwable e) {

            }

            @Override
            public void onNext(WaresBean s) {
                 //做获取数据的处理
                Log.e(TAG, "onNext: "+s.getCopyright() );
            }
        };
     //2创建一个被观察者
         observable = Observable.create(new Observable.OnSubscribe<WaresBean>(){


              @Override
              public void call(final Subscriber<? super WaresBean> subscriber) {
                  //添加数据
                  getActivity().runOnUiThread(new Runnable() {
                      @Override
                      public void run() {
                          RetrofitUtil.getInstance().getWaresHot1(new retrofit2.Callback<WaresBean>() {
                              @Override
                              public void onResponse(Call<WaresBean> call, Response<WaresBean> response) {
                                  WaresBean body = response.body();
                                  subscriber.onNext(body);

                              }

                              @Override
                              public void onFailure(Call<WaresBean> call, Throwable t) {

                              }
                          });

                      }
                  });
              }
          });
      //3添加订阅者,联网获取数据
        observable.subscribeOn(Schedulers.io());//设置在子线程完成 subscribe 操作
        observable.observeOn(AndroidSchedulers.mainThread());//设置在哪完成observe操作
        observable.subscribe(observer);

            }

总结:这样使代码变得更简洁。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是阿亮啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值