您的位置:首页 > 编程语言 > Java开发

Rxjava的helloWorld

2016-06-29 19:42 489 查看
一、什么是RxJava

RxJava是ReactiveX(响应式编程)中使用Java语言实现的版本,目前基本上主流的语言都已经有了对应的ReactiveX实现版本。可是知道这些也只能是一个大写的懵逼……

我觉得直接先扔出一个RxJava的helloworld的demo然后给大家进行分析

由于本人是在android中用到,所以给出的是android的demo

二、helloword

主要的代码:

public class MainActivity extends AppCompatActivity {

private TextView tv_zzx;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_zzx = (TextView) findViewById(R.id.tv_zzx);
//
Observable<String> observable =Observable.just("zhaozx_helloworld");
//
observable.subscribe(subscriber );
}

//
Subscriber<String> subscriber = new Sunscriber<String>(){
@Override
public void onCompleted(){
System.out.println("zhaozx_onCompleted");
}
@Override
public void onError(Throwable e){
System.out.println("zhaozx_onError");
}
@Override
public void onNext(String s){
System.out.println(s);
tv_zzx.serText(s);
}
}

}


布局文件内容

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
android:id="@+id/tv_zzx"
android:textSize="30dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>


我使用的android studio,然后需要在当前APP的gradle中加入两个依赖jar

compile 'io.reactivex:rxjava:x.y.z'
compile 'io.reactivex:rxandroid:1.2.0'


版本可以有所不同。

接下来看运行效果



而且在控制台会看到

06-29 11:16:17.083 30448-30448/com.appscomm.rx_lenrn I/System.out: zhaozx_helloworld
06-29 11:16:17.083 30448-30448/com.appscomm.rx_lenrn I/System.out: zhaozx_onCompleted


看到这里,读者也许会有一点模糊的定义,其实没有也没关系,本人刚接触时也是这样。

三、个人的见解

接下来就分析分析这个demo。

在这个demo中眼生的代码就只有三行

//事件源准备好一个事件
//just("zhaozx_helloworld")是一个包含一个String的事件
//(关于just的分析将会在后期的博客中给出)
Observable<String> observable =Observable.just("zhaozx_helloworld");
//制定一个订阅者
observable.subscribe(subscriber );
//订阅者,去处理被观察者,里面方法的分析在后面给出
Subscriber<String> subscriber = new Subscriber<String>() {
...
};


我对这三句代码的理解就是包含了RxJava中的最重要的两个东西

Observable:被观察者、事件源

Subscriber:观察者、订阅者

observable.subscribe(subscriber ):两个重要部分的关联。

详细的注释我就写在代码中了

接下来给大家分析在订阅者中重载的三个方法的作用。

大家也看到了在控制台输出的语句,调用的顺序是先onNext在onComplete,根据我查阅的资料是这样介绍的,SubScriber(订阅者)在观察到Observale(被观察者)后有逻辑业务时调用onNext,onNext调用结束后,会调用onComplete(无异常时调用)或onError(有异常时调用)。

helloWorld的学习就到这里了,本人也处于学习状态,日后后逐步完成关于RxJava更多的知识
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息