Android使用RxJava+Retrofit请求网络的小Demo
来源:互联网 发布:淘宝货源免费代理代销 编辑:程序博客网 时间:2024/05/17 09:00
1、先新建项目,然后在项目中添加依赖
compile 'com.squareup.retrofit2:retrofit:2.1.0' compile 'com.squareup.retrofit2:converter-gson:2.1.0' compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0' compile 'io.reactivex:rxandroid:1.2.0'
2、创建一个接口 专门用来管理所有的网络请求 在这个接口里面,定义所有的请求
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);}
3、在Activity中初始化 并去订阅请求被观察者的变化
private void requestData() { Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.douban.com/v2/") .addConverterFactory(GsonConverterFactory.create(new GsonBuilder().create())) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) // 支持Rxjava .build(); RetrofitService service = retrofit.create(RetrofitService.class); Observable<Book> observable = service.getSearchBook("金瓶梅", null, 0, 1); 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) { textView.setText(book.getBooks().get(0).getAuthor() + ""); } }); }
这是仿着别人写的 自己学习的笔记,集成起来就是这么简单 操作也是这样的
现在流行的MVP+RxJava+Retrofit主要是为了解耦,将所有的请求网络的东西都放在了retrofitService中,减少了Activity中的代码量,如果再加上MVP将所有的处理都放在presenter中,Activity中就只剩下更新UI了,整个项目将变得无比的简洁。
当然,关于使用mvp,项目中,并不是所有的界面都要用mvp,这样会出现很多的类,复杂界面使用mvp,简单逻辑的界面,都写在activity中就行了(个人观点),这一系列的作用就是为了解耦……
1 0
- Android使用RxJava+Retrofit请求网络的小Demo
- 使用MVP+Retrofit+RxJava实现的的Android Demo (下)使用Retrofit+RxJava处理网络请求
- mvp下rxjava+retrofit的登录网络请求demo
- Android Retrofit+rxjava+okhttp请求网络的基本用法
- RXJava+Retrofit网络请求
- Android】RxJava + Retrofit完成网络请求
- Android 网络请求框架之Rxjava+Retrofit
- Android网络请求(二)retrofit+rxjava
- Android 网络请求框架之Rxjava+Retrofit
- 【Android】RxJava + Retrofit完成网络请求
- Android 网络请求框架之Rxjava+Retrofit
- Android 网络请求框架之Rxjava+Retrofit
- 【Android】RxJava + Retrofit完成网络请求
- 【Android】RxJava + Retrofit完成网络请求
- android+MVP+Retrofit+RxJava做网络请求
- rxjava 和retrofit 结合使用 请求网络
- Retrofit+Rxjava简单的网络请求
- android+mvp+retrofit+rxjava+okhttp的demo支持加载对话框消失取消请求
- Zookeeper学习(五):ZKClient的使用
- c/c++学习 No.2 字符串的学习
- 多视角图像生成--Multi-View Image Generation from a Single-View
- java实现堆排序的小心得
- Android 百度地图marker中图片不显示的解决方案
- Android使用RxJava+Retrofit请求网络的小Demo
- 三种常见字符编码简介:ASCII、Unicode和UTF-8
- okHttp3.0获取网络数据
- 过滤驱动 文件访问重定向方法
- oop
- BZOJ 1036 [ZJOI2008]树的统计Count
- CorelDRAW中六种复制对象的方法分享
- Mimetype 对照表
- 每日一题 No.23 字符串学习