首页 > 编程语言 > 详细

Retrofit2和RxJava配合使用Demo

时间:2016-03-22 18:52:48      阅读:204      评论:0      收藏:0      [点我收藏+]

和Retrofit2单独使用有一些区别

首先,同样写个interface,这里是GitHubService.java,我们这次要实现获取官方提供的测试接口的数据

1 public interface GitHubService {
2     @GET("repos/{owner}/{repo}/contributors")
3     Observable<List<Contributor>> getUserInfoByObservable(@Path("owner") String owner, @Path("repo") String repo);
4 }

注意,上边的区别,retrofit2单独使用的时候是Call<List<Contributor>>,而rx使用的是Observable,可观察者对象

再写一个获取数据的工具类ParseUtils.java

1 public class ParseUtils {
2 
3         public static GitHubService gitHubService = new Retrofit.Builder().baseUrl("https://api.github.com/")
4                 .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
5                 .addConverterFactory(GsonConverterFactory.create()).build().create(GitHubService.class);
6 
7 }

这里也有一些区别,retrofit2单独使用时不需要addCallAdapterFactory(RxJavaCallAdapterFactory.create()),这里使用rx,如果没有这句话,会报Unable to create call adapter for rx.Observable错误

接下来在activity中使用

1 ParseUtils.gitHubService.getUserInfoByObservable("square", "retrofit")
2                 .subscribeOn(Schedulers.newThread())
3                 .observeOn(AndroidSchedulers.mainThread())
4                 .subscribe(new Action1<List<Contributor>>() {
5                     @Override
6                     public void call(List<Contributor> contributors) {
7                         //do somthing
8                     }
9                 });

我在上一篇记录retrofit2使用时写了demo,以后可以对照

Retrofit2和RxJava配合使用Demo

原文:http://www.cnblogs.com/devli/p/5307808.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!