码迷,mamicode.com
首页 > 编程语言 > 详细

Retrofit2和RxJava配合使用Demo

时间:2016-03-22 18:56:04      阅读:510      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!