Retrofit2+RxJava

原创 2016年08月28日 22:30:01

Retrofit2+RxJava

1.定义接口

Observable
interface city {
    @GET("openapi/cities")
    Observable<City> getCitiesBean();
}

2.Subscriber

Func1 和 Action 的区别在于, Func1 包装的是有返回值的方法。另外,和 ActionX 一样, FuncX 也有多个,用于不同参数个数的方法。FuncX 和 ActionX 的区别在 FuncX 包装的是有返回值的方法。
city.getCitiesBean()
            .subscribeOn(Schedulers.io())//指定网络加载等操作在I/0线程
            .observeOn(AndroidSchedulers.mainThread())//更新页面在主线程,符合业务逻辑
            .map(new Func1<City, List<City.CitiesBean>>() {

                @Override
                public List<City.CitiesBean> call(City city) {
                    return city.getCities();
                }
            })//Func1是一个带返回值的包装,map是对Observable进行转换
            .flatMap(new Func1<List<City.CitiesBean>, Observable<String>>() {
                @Override
                public Observable<String> call(List<City.CitiesBean> citiesBeen) {
                    return Observable.just(citiesBeen.get(1).getCity_name());
                }//subscribe是订阅,其中Action1是一个封装了OnNext的
            }).subscribe(new Action1<String>() {
  //flatMap也是一种转换,是对多个对象进行转换,返回的必须是一个Observable,然后再进行订阅,接受到的新的
  //订阅再进行subscribe订阅,然后操作的是这个新的Observable。相当于A->C变成A->B,B->C这样铺平。也就是
  //flat的含义。
        @Override
        public void call(String s) {
            Log.v("aaaaaaaaa",s);
        }
    });
标准应该是subscribe,(new Observer)这样可以得到completed也就是发送完毕的,OnNext执行的操作,以及ERROR报错。Action1是带一个参数,OnNext()的包装。
new Observer<String>() {
    @Override
    public void onCompleted() {

    }

    @Override
    public void onError(Throwable e) {

    }

    @Override
    public void onNext(String s) {

    }
}

3.取消订阅,Subscriber.unsubcribe();

retrofit2+rxjava+okhttp使用demo。

  • 2016年11月28日 22:57
  • 30.41MB
  • 下载

Retrofit2+RxJava学习小计(一):单文件、多文件上传之填平的坑

从Eclipse转战AndroidStudio已经有两个月了。先夸夸Google亲儿子的强大吧,各种方便就不一一道来了。主要是现在的Android阵营已经不想前两年了。各种开源框架开源库。也正是如此,...

Retrofit2+OkHttp3+RxJava

  • 2016年05月19日 18:17
  • 8.44MB
  • 下载

继续趁热!!!Retrofit2使用(基于RxJava2.0,修正一次)

引言 hello 大家好,没想到吧!我又回来了,回来了,来了,了(武器大师的话,我加了个特技,哈哈)。 好了开始我们今天的主题吧,昨天有人问我,该用什么网络框架,怎么用,怎么保证内存不泄...

RxJava+Retrofit+OkHttp3+Dagger2+MVP源码

  • 2017年08月08日 18:09
  • 26.33MB
  • 下载

在Rxjava+Retrofit 2中检查网络连接和显示加载框

2017年9月7日更新: Rxjava 中 onError 时 doOnTerminate 不调用的原因探索显示隐藏加载框的功能大家可以看我的这篇文章深入理解RxJava的Side Effect M...

Retrofit2.0和RxJava2获取天气的Demo

  • 2017年09月04日 12:48
  • 1.04MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Retrofit2+RxJava
举报原因:
原因补充:

(最多只允许输入30个字)