RxJava学习之路(一)

Observables(被观察者,事件源):发出一系列事件。
Subscribers(观察者):处理这些事件。

一、添加RxJava依赖

implementation 'io.reactivex:rxjava:1.0.14'
implementation 'io.reactivex:rxandroid:1.0.1'

二、初识Observables和Subscribers

Observable<String> observable = Observable.create(new Observable.OnSubscribe<String>() {
   @Override
   public void call(Subscriber<? super String> subscriber) {
      subscriber.onNext("风水宝地九分裤");
      subscriber.onCompleted();
   }
});
Subscriber subscriber = new Subscriber() {
   @Override
   public void onCompleted() {

   }

   @Override
   public void onError(Throwable e) {

   }

   @Override
   public void onNext(Object o) {
      Log.d("WY", String.valueOf(o));
   }
};
observable.subscribe(subscriber);//被观察者订阅观察者

简化Subscriber,我们其实并不关心OnComplete和OnError,我们只需要在onNext的时候做一些处理,这时候就可以使用Action1类。

Observable observable = Observable.just("hee");
Action1<String> action1 = new Action1<String>() {
   @Override
   public void call(String s) {
      Log.d("WY", s);
   }
};
Action1<Throwable> action11 = new Action1<Throwable>() {
   @Override
   public void call(Throwable o) {

   }
};
Action0 action0 = new Action0() {
   @Override
   public void call() {

   }
};
observable.subscribe(action1, action11, action0);

以上,还可以简略成

Observable.just("ddd").subscribe(new Action1<String>() {
   @Override
   public void call(String s) {
      Log.d("WY", s);
   }
});

三、变换

map操作符实现变换,让Subscribers更加轻量级。

Observable.just(110).map(new Func1<Integer, String>() {
   @Override
   public String call(Integer s) {
      return String.valueOf(s) + "s";
   }
}).subscribe(new Action1<String>() {
   @Override
   public void call(String t) {
      Log.d("WY", t);
   }
});
Observable.just("110").map(new Func1<String, Integer>() {
   @Override
   public Integer call(String s) {
      return s.hashCode();
   }
}).map(new Func1<Integer, String>() {
   @Override
   public String call(Integer integer) {
      return String.valueOf(integer) + "s";
   }
}).subscribe(new Action1<String>() {
   @Override
   public void call(String s) {
      Log.d("WY", s);
   }
});


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值