RxJava学习(一)——RxJava入门实践与上手Demo
2016-09-08 22:43
274 查看
学习响应式Java(RxJava)已经两天辣~看了几篇繁冗的博文以及资料,打算在此做一个简单的总结,供新手参考以及快速入门,也希望大家少走一些我碰到的弯路。
首先是RxJava的Github地址:https://github.com/ReactiveX/RxJava
在Studio下使用时我们需要添加依赖:
RxJava概念:
感觉跟观察者模式很像,但是有一定区别,即RxJava在观察者没有事件的情况下是不会产生回调的。
但是更爽的事情是链式调用,可以让代码更加直观简洁,下面用一个直观的Demo让你可以快速入门QAQ。
Demo实践:
与观察者模式类似,RxJava涉及两个角色,观察者(Observer或Subscriber),被观察者(Observable),但是事件传递方式以及订阅过程有所不同。
最简单的三步调用步骤:
1.我们需要定义一个观察者:
可以看到观察者中定义了一些响应的回调事件,顾名思义可知分别是完成事件,报错事件,以及执行过程(下一个)事件。
2.我们需要定义一个被观察者:
3.订阅:
运行结果:
可以看到相应的回调都得到了执行。
至于其他的各种花式语法我可能会在之后的博客进行介绍,这里算是一个启蒙教育吧QAQ,也没有体现出链式调用的爽点。
应用场景:
可能有很多小伙伴这个时候会很疑惑,到底用在哪呢?其实用到的地方可以非常多,类似于EventBus对程序进行响应式判断,比如你的应用有一个会员系统,你充值以后会员等级提高了,那么是不是界面颜色得变下?顶部的Toolbar里也得从白银会员改成黄金会员了吧?各种福利也应该开启了吧?类似于onClickListener的回调,即一旦发生,就执行回调事件,但是RxJava的功能可远远不止这些,还有线程控制,参数变化等等,可以让我们更好地操纵程序以及维护代码。
首先是RxJava的Github地址:https://github.com/ReactiveX/RxJava
在Studio下使用时我们需要添加依赖:
compile 'io.reactivex:rxjava:1.0.14' compile 'io.reactivex:rxandroid:1.0.1'
RxJava概念:
感觉跟观察者模式很像,但是有一定区别,即RxJava在观察者没有事件的情况下是不会产生回调的。
但是更爽的事情是链式调用,可以让代码更加直观简洁,下面用一个直观的Demo让你可以快速入门QAQ。
Demo实践:
与观察者模式类似,RxJava涉及两个角色,观察者(Observer或Subscriber),被观察者(Observable),但是事件传递方式以及订阅过程有所不同。
最简单的三步调用步骤:
1.我们需要定义一个观察者:
//定义观察者 Observer<String> observer = new Observer<String>() { @Override public void onCompleted() { Log.d(tag,"Completed!"); } @Override public void onError(Throwable e) { Log.d(tag,"Error!"); } @Override public void onNext(String s) { Log.d(tag,"Item: " + s); } };
可以看到观察者中定义了一些响应的回调事件,顾名思义可知分别是完成事件,报错事件,以及执行过程(下一个)事件。
2.我们需要定义一个被观察者:
//被观察者 使用onCreate创建 Observable observable = Observable.create(new Observable.OnSubscribe<String>(){ @Override public void call(Subscriber<? super String> subscriber) { subscriber.onNext("Hello"); subscriber.onNext("whale"); subscriber.onNext("nangua"); subscriber.onCompleted(); } });call方法可以理解为被观察者的回调执行方法,也就是说被观察者的一系列动作都可以在这里指明。
3.订阅:
observable.subscribe(observer);很简单,一句代码就ok了,这里可以理解为“被观察者”制定了需要被某个观察者观察。
运行结果:
可以看到相应的回调都得到了执行。
至于其他的各种花式语法我可能会在之后的博客进行介绍,这里算是一个启蒙教育吧QAQ,也没有体现出链式调用的爽点。
应用场景:
可能有很多小伙伴这个时候会很疑惑,到底用在哪呢?其实用到的地方可以非常多,类似于EventBus对程序进行响应式判断,比如你的应用有一个会员系统,你充值以后会员等级提高了,那么是不是界面颜色得变下?顶部的Toolbar里也得从白银会员改成黄金会员了吧?各种福利也应该开启了吧?类似于onClickListener的回调,即一旦发生,就执行回调事件,但是RxJava的功能可远远不止这些,还有线程控制,参数变化等等,可以让我们更好地操纵程序以及维护代码。
相关文章推荐
- 带你入门学习Rxjava--上手教程
- Castle ActiveRecord学习实践(1):快速入门指南
- C#.Net Castle ActiveRecord学习实践(1):快速入门指南
- 【hadoop学习】在伪分布式hadoop上手把手实践word count程序【下】
- struts开发实践—入门学习
- ICE入门学习和实践
- Castle ActiveRecord学习实践(1):快速入门指南
- 学习实践之DEMO《nodejs模拟POST登陆》
- Castle ActiveRecord学习实践(1)入门
- fourinone学习笔记一(上手demo)
- [整理]Node入门 » 一本全面的Node.js教程 - Demo实践所遇到的问题
- JAVA学习资料实践教程 从入门到精通
- Google.Android开发入门与实践-学习笔记2
- Google.Android开发入门与实践-学习笔记1
- 【hadoop学习】在伪分布式hadoop上手把手实践word count程序【上】
- struts开发实践---入门学习
- struts开发实践---入门学习
- Google.Android开发入门与实践-学习笔记4
- mybatis3.X入门学习demo
- spring mvc开发入门实例demo源代码下载,很适合新手入门学习用。