最近有点闲,就研究了下RxJava与Retrofit的使用。网上找了不少的demo与例子,都是别人封装好的,看起来有点吃力。然后自己写了个简单的例子,以后再封装吧。
在使用RxJava与Retrofit之前我们要先了解下这两种框架。网上例子比较多,给大家分享下我看的几个吧
Rxjava:http://www.jianshu.com/u/c50b715ccaeb 这个写的不错,由浅入深。讲了不少东西.
Retrofit:http://blog.csdn.net/bitian123/article/details/51899716 这个是现找的,也是入门级的教程。
在正式开始之前大家注意下
compile ‘io.reactivex:rxandroid:1.1.0‘
compile ‘com.squareup.retrofit2:retrofit:2.0.0-beta3‘
compile ‘com.squareup.retrofit2:adapter-rxjava:2.0.0-beta3‘
compile ‘com.squareup.retrofit2:converter-gson:2.0.0-beta3‘
RxJava和Retrofit都有两个大的版本更新,加载jar文件的时候一定要正确。不然有的方法是找不到的。
直接给大家贴上我全部的代码吧,比较简单,只有两个class,里面的内容也是RxJava与Retrofit基本的东西,大家看下我贴出来的两个网址基本上都会懂的,我就不复述了,关于CallAdapterFactory和
ConverterFactory再给大家贴个地址吧:http://blog.csdn.net/new_abc/article/details/53021387。
第一个class,也是mainactivity
//初始化Retrofit
Retrofit = new Retrofit.Builder().baseUrl("http://***.**.184.217/")
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create()).build();
btn = (Button) findViewById(R.id.btn);
mTextView = (TextView) findViewById(R.id.text3);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
BTNClick();
}
});
}
public void BTNClick() {
RxService RxService = Retrofit.create(RxService.class);
Observable<Object> Object = RxService.getData();
Subscriber mSubscriber = new Subscriber<Object>() {
@Override
public void onCompleted() {
Log.d(TAG, "onCompleted");
}
@Override
public void onError(Throwable e) {
Log.d(TAG, "onError: " + e.toString());
}
@Override
public void onNext(Object o) {
Log.d(TAG, "onNext: " + o.toString());
mTextView.setText(o.toString());
}
};
Object.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(mSubscriber);
}
第二个class
public interface RxService {
@GET("peng.php")
Observable<Object> getData();
}
最后运行的结果:
MainActivity: onNext: {大一=[[1.0, 张, 班长, 19], [2.0, 李, 学委, 18], [3.0, 王, 学生, 19]], 大二=[[1.0, 赵, 班长, 19], [2.0, 周, 学委, 18], [3.0, 郭, 学生, 19]], 大三=[[1.0, 孙, 班长, 19], [2.0, 鲁, 学委, 18], [3.0, 林, 学生, 19]]}
MainActivity: onCompleted
最后再额外地说一点,给Android Studio刚入门的人说的。在build.gradle中的dependencies中 输入compile ‘io.reactivex:rxandroid:1.1.0‘以后。不需要我们再导入jar包,在屏幕的上方会出现这个提示,点击sync now 就会自动下载jar文件
原文:http://www.cnblogs.com/lpf2472308787/p/6656552.html