* 演示RxJava的介绍以及基本使用
*
* 1.RxJava是什么?
* RxJava本质就是一个实现异步操作的库 异步
*
* 2.RxJava优点 简洁(随着程序的逻辑变得复杂 可以将复杂的逻辑代码串成一条线)
*
* 3.原理 RxJava异步实现 拓展的观察者模式
*
* 观察者模式:A对象(观察者)对B(被观察者)对象的某种变化比较敏感 需要在B对象变化的瞬间
* 作出反应 程序中的观察者模式 采用注册或者订阅方式 告诉被观察者当他变化是通知观察者
*
* android应用中的观察者案例 view视图绑定单击事件
* view被观察者---onClickListener单击事件的监听器 观察者
* 注册/订阅 setOnClickListener()
* 当单击view视图时 通知onClickListener单击事件的监听器观察者对象作出响应(回调onClick方法)
*
* RxJava中观察者模式
* RxJava中四个基本概念 Observable(被观察者) Observer(观察者)
* Subscribe(订阅/注册)
* Observable(被观察者) Observer(观察者)通过Subscriber()方法实现订阅关系
compile 'com.squareup.retrofit2:converter-scalars:2.0.0-beta4'
*
* 1.RxJava是什么?
* RxJava本质就是一个实现异步操作的库 异步
*
* 2.RxJava优点 简洁(随着程序的逻辑变得复杂 可以将复杂的逻辑代码串成一条线)
*
* 3.原理 RxJava异步实现 拓展的观察者模式
*
* 观察者模式:A对象(观察者)对B(被观察者)对象的某种变化比较敏感 需要在B对象变化的瞬间
* 作出反应 程序中的观察者模式 采用注册或者订阅方式 告诉被观察者当他变化是通知观察者
*
* android应用中的观察者案例 view视图绑定单击事件
* view被观察者---onClickListener单击事件的监听器 观察者
* 注册/订阅 setOnClickListener()
* 当单击view视图时 通知onClickListener单击事件的监听器观察者对象作出响应(回调onClick方法)
*
* RxJava中观察者模式
* RxJava中四个基本概念 Observable(被观察者) Observer(观察者)
* Subscribe(订阅/注册)
* Observable(被观察者) Observer(观察者)通过Subscriber()方法实现订阅关系
* Observable需要时发出事件通知Observer
*4实现步骤:
导包:
compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'
compile 'com.squareup.retrofit2:converter-scalars:2.0.0-beta4'
compile 'io.reactivex:rxjava:1.1.10'
compile 'io.reactivex:rxandroid:1.2.1'
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
新建一个java,存放网址:
//示例:这里注意,这个网址是你所要解析的网址的一段,长度随便,但必须是以
/结尾
public final static String Ten_URL="http://www.syby8.com/apptools/";
新建一个接口,接口名自定义:
实例:@GET注解后面写上你网址后半部分
@GET("apptools/indexad.aspx?v=34") Observable<T> getJsonString();
在你需要解析的类中写下列程序
解析以及异步加载
Retrofit retrofit = new Retrofit.Builder()
//加载网站
.baseUrl(你写的网址类里的网址)
.addConverterFactory(GsonConverterFactory.create
//GSON解析.addConverterFactory(GsonConverterFactory.create()).addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .build();接口类 接口类对象 = retrofit.create(接口类.class);
Observable<T> observable = 接口对象.getJsonTen1String();
observable.subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<T>() { @Override public void call(T t) { //这里的t就是解析出来的数据。T可以是任意类型,T是什么类型,解析出的数据t就是什么类型 } });