蜕变的快乐

享受蜕变的过程,感悟编程的乐趣

MVP+Retrofit+RxJava+Dagger框架




MVP和Retrofit还有Dagger的使用和我们平常是差不多的,这里就不过多的讲解了
主要来讲解一下RxJava和Retrofit的结合

下面我们来看一下RxJava和retrofit的结合使用,为了使Rxjava与retrofit结合,我们需要在Retrofit对象建立的时候添加一句代码addCallAdapterFactory(RxJavaCallAdapterFactory.create()),当然你还需要在build.gradle文件中添加如下依赖:
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'

完整的代码如下:
Retrofit retrofit = new Retrofit.Builder()
        .baseUrl("https://api.douban.com/v2/")
        .addConverterFactory(GsonConverterFactory.create(new GsonBuilder().create()))
        .addCallAdapterFactory(RxJavaCallAdapterFactory.create())//支持RxJava
        .build();

然后我们还需要修改RetrofitService 中的代码:
public interface RetrofitService {
    @GET("book/search")
    Observable<Book> getSearchBook(@Query("q") String name,
                                    @Query("tag") String tag, @Query("start") int start,
                                    @Query("count") int count);

可以看到,在原来的RetrofitService 中我们把getSearchBook方法返回的类型Call改为了Observable,也就是被观察者。其他都没变。然后就是创建RetrofitService 实体类:
RetrofitService service = retrofit.create(RetrofitService.class);

和上面一样,创建完RetrofitService ,就可以调用里面的方法了:
Observable<Book> observable =  service.getSearchBook("Hello", null, 0, 1);

其实这一步,就是创建了一个rxjava中observable,即被观察者,有了被观察者,就需要一个观察者,且订阅它:
observable.subscribeOn(Schedulers.io())//请求数据的事件发生在io线程
          .observeOn(AndroidSchedulers.mainThread())//请求完成后在主线程更显UI
          .subscribe(new Observer<Book>() {//订阅
              @Override
              public void onCompleted() {
                  //所有事件都完成,可以做些操作。。。
              }
              @Override
              public void onError(Throwable e) {
                  e.printStackTrace(); //请求过程中发生错误
              }
              @Override
              public void onNext(Book book) {//这里的book就是我们请求接口返回的实体类    
              }
           }

在上面中我们可以看到,事件的消费在Android主线程,所以我们还要在build.gradle中添加如下依赖:
compile 'io.reactivex:rxandroid:1.2.0'

这样我们就引入了RxAndroid,RxAndroid其实就是对RxJava的扩展。比如上面这个Android主线程在RxJava中就没有,因此要使用的话就必须得引用RxAndroid。




阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jinhuoxingkong/article/details/76260032
文章标签: Retrofit Dagger2 MVP
个人分类: 【安卓 基础】
想对作者说点什么? 我来说一句

eterna-1.3.2

2011年07月04日 1.11MB 下载

ext框架框架框架框架框架

2009年11月30日 5KB 下载

独一无二的框架框架框架

2011年04月17日 1.62MB 下载

ssh框架(java)示例

2011年08月26日 9.67MB 下载

MVParms框架

2018年04月18日 3.74MB 下载

php开发yii框架软件包

2009年12月25日 2.71MB 下载

Java框架Java框架Java框架

2010年03月19日 135KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭