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

Android Http框架Retrofit +Rxjava
  • baidu_16668271
  • baidu_16668271
  • 2016年09月13日 10:03
  • 353

retrofit2+RxJava简单使用

刚学习Android的网络开发,记录起来,作个纪念。 使用Android Studio开发。 配置build.gradle compile 'com.squareup.retrofit2:retrof...
  • net_wolf_007
  • net_wolf_007
  • 2016年08月25日 19:25
  • 371

Retrofit2+Rxjava学习到封装

一. 为什么写这篇文章RxJava和Retrofit也火了一段时间了,网上有很多RxJava与Retrofit的文章介绍,拜读一番之后,仍感觉这两个框架不接底气,对于初学者仍是丈二的和尚,不知所云,且...
  • flysweetegg
  • flysweetegg
  • 2017年04月26日 11:51
  • 327

retrofit2+rxjava的结合使用

因为retrofit2+rxjava的结合使用是现在主流的使用方法,所以最近在网上翻阅好多相关资料,现在整理如下. 1.创建一个实体类 public class demobean { ...
  • Chai_C_Huang
  • Chai_C_Huang
  • 2016年08月12日 10:39
  • 253

Retrofit2+Rxjava练手项目_1

1.添加依赖:compile 'io.reactivex:rxjava:1.2.7' compile 'io.reactivex:rxandroid:1.2.1' compile 'c...
  • Rokkki
  • Rokkki
  • 2017年03月11日 15:07
  • 132

小白装逼:Android retrofit2+rxjava

本人小白,最近接触了安卓的网络框架,特来此装逼,有误导之处,请及时指出,谢谢!首先说下retrofit这个东西,之前不知道有这东西,所以网络请求都是直接用socket来写,后来才知道有okhttp3,...
  • qq_38713396
  • qq_38713396
  • 2017年07月29日 14:10
  • 147

retrofit2+rxjava2封装解析

最近看了很多的资料和retrofit2和rxjava2的封装,有一些感悟,所以写下来 这篇博客不讲retrofit2和rxjava2的用法,只讲封装 主要讲解 1,对后台返回的数据进行过滤,只拿...
  • qq_15527709
  • qq_15527709
  • 2017年04月26日 10:17
  • 1506

Android极封Retrofit2+RxJava网络请求框架

说是极封,其实只是看起来极封 new RetrofitUtils(LoginAPI.class) { @Override protected void onSuccess(com...
  • qq_36523667
  • qq_36523667
  • 2018年01月23日 02:51
  • 61

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

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

自己手打的Retrofit2+Rxjava 2结合的案例

自己也是最近几天看了相关的文章,就尝试写了一下,有点小激动,纯粹是为了记录一下 一.依赖如下 二。直接上正题 1.url用的是豆瓣的: BASE_URL = "https://api.douban...
  • u013075460
  • u013075460
  • 2017年09月02日 14:46
  • 290
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Retrofit2+RxJava
举报原因:
原因补充:

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