Rxjava的helloWorld

一、什么是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更多的知识

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值