RxJava Rxandroid retrofit
2016-05-27 13:51
471 查看
其实Retrofit会了。集合RxJava,RxAndroid 就很简单了。
只需要改几个地方。
1。接口里面返回的对象不再是 call,而是Observable
2.使用的时候注册 一个监听器 addCallAdapterFactory
3.使用 得到的结果处理
真的,我试过了。RxJava 比纯retrofit快很多。真的是,同样的网络请求,感觉倒很快,有的很垃圾。
只需要改几个地方。
1。接口里面返回的对象不再是 call,而是Observable
public interface ApiService { /* @GET("service/getIpInfo.php") Call<GetIpInfoResponse> getIpInfo(@Query("ip") String ip);*/ @GET("service/getIpInfo.php") Observable<GetIpInfoResponse> getIpInfo(@Query("ip") String ip); }
2.使用的时候注册 一个监听器 addCallAdapterFactory
Retrofit retrofit = new Retrofit.Builder() .baseUrl(ENDPOINT) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .build();
3.使用 得到的结果处理
ApiService apiService = retrofit.create(ApiService.class); apiService.getIpInfo("63.223.108.42") .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber<GetIpInfoResponse>() { @Override public void onCompleted() { mProgressBar.setVisibility(View.GONE); } @Override public void onError(Throwable e) { mProgressBar.setVisibility(View.GONE); mTvContent.setText(e.getMessage()); } @Override public void onNext(GetIpInfoResponse getIpInfoResponse) { mTvContent.setText(getIpInfoResponse.data.country); } });
真的,我试过了。RxJava 比纯retrofit快很多。真的是,同样的网络请求,感觉倒很快,有的很垃圾。
相关文章推荐
- Android ShareSDK 修改分享功能展示界面
- Android 下载地址包含中文 无法下载的解决方法
- Android中View绘制流程以及invalidate()等相关方法分析
- Android读写NFC
- Android 传感器的使用
- 从Android运行时出发,打造我们的脱壳神器
- TextView部分文字变色、可点击。(微博话题 变色、点击)
- android 音乐播放工具类MediaPlayer
- Android传感器用法
- 解决AndroidStudio Cannot run program "git"(in directory) "F;\GitHubProiject.XXX" CreateProcess error=2
- Android按钮的四种点击事件
- AndroidStudio运行编译慢的提速方法
- Android使用源码中隐藏的API
- 通过回调在fragment中获取activity的触摸事件
- 静态代理,动态代理---笔记
- android studio快捷键
- 10分钟教你学会三级缓存
- 从头学android_Pull解析器解析xml文件
- android弹出框之Dialog
- [Android进阶]Java、Android 内存泄漏总结