rxjava入门,从最简单的上手
2017-06-15 09:54
232 查看
前言
相信各位看官对RxJava早有耳闻,那么关于什么是RxJava我就不再赘述了,不知道的可自行百度。如果你已经大致了解过什么是RxJava,想开始学习,那么本文不失为你良好的选择,为什么这么说呢,因为我也是刚学几天,正所谓“知己知彼,百战不殆”。网上流传,RxJava的入门门槛高,而经过我这几天的学习,我反而不那么认为,精通我不敢说,但入门确实也不难,不信?我先来个简单的例子预热一下。先创建个数据发射源,很好理解,就是发射数据用的:
Observable sender = Observable.create(new Observable.OnSubscribe() {
@Override public void call(Subscriber<? super String> subscriber) { subscriber.onNext("Hi,Weavey!"); //发送数据"Hi,Weavey!" } });
再创建个数据接收源,同理,接收数据用的:
Observer receiver = new Observer() {
@Override public void onCompleted() { //数据接收完成时调用 } @Override public void onError(Throwable e) { //发生错误调用 } @Override public void onNext(String s) { //正常接收数据调用 System.out.print(s); //将接收到来自sender的问候"Hi,Weavey!" } };
好了,将发射源和接收源关联起来:
sender.subscribe(receiver);
这样就形成RxJava一个简单的用法,sender发射”Hi,Weavey!”,将会被receiver的onNext的接收,通过这个例子,也许你会想到“异步”、“观察者模式”,没错,这些都是RxJava所做的事情,并且让他们变得更简单和简洁,而RxJava所有的一切都将围绕这两个点展开,一个是发射数据,一个是接收数据,是不是很通俗易懂?如果你理解了这点或者你已经知道RxJava就是这么一回事,那么恭喜你,你已经一只脚跨进RxJava的大门了,如果不是!!!!那也无所谓,请继续往下看…
论概念的重要性
网上关于RxJava的博文也有很多,我也看过许多,其中不乏有优秀的文章,但绝大部分文章都有一个共同点,就是侧重于讲RxJava中各种强大的操作符,而忽略了最基本的东西——概念,所以一开始我也看的一脸懵逼,看到后面又忘了前面的,脑子里全是问号,这个是什么,那个又是什么,这两个长得怎么那么像。举个不太恰当的例子,概念之于初学者,就像食物之于人,当你饿了,你会想吃面包、牛奶,那你为什么不去吃土呢,因为你知道面包牛奶是用来干嘛的,土是用来干嘛的。同理,前面已经说过,RxJava无非是发送数据与接收数据,那么什么是发射源,什么是接收源,这就是你应该明确的事,也是RxJava的入门条件之一,下面就依我个人理解,对发射源和接收源做个归类,以及RxJava中频繁出现的几个“单词”解释一通,说的不好还请海涵,欢迎补充。
基本概念
Observable:发射源,英文释义“可观察的”,在观察者模式中称为“被观察者”或“可观察对象”;
Observer:接收源,英文释义“观察者”,没错!就是观察者模式中的“观察者”,可接收Observable、Subject发射的数据;
Subject:Subject是一个比较特殊的对象,既可充当发射源,也可充当接收源,为避免初学者被混淆,本章将不对Subject做过多的解释和使用,重点放在Observable和Observer上,先把最基本方法的使用学会,后面再学其他的都不是什么问题;
Subscriber:“订阅者”,也是接收源,那它跟Observer有什么区别呢?Subscriber实现了Observer接口,比Observer多了一个最重要的方法unsubscribe( ),用来取消订阅,当你不再想接收数据了,可以调用unsubscribe( )方法停止接收,Observer 在 subscribe() 过程中,最终也会被转换成 Subscriber 对象,一般情况下,建议使用Subscriber作为接收源;
Subscription :Observable调用subscribe( )方法返回的对象,同样有unsubscribe( )方法,可以用来取消订阅事件;
Action0:RxJava中的一个接口,它只有一个无参call()方法,且无返回值,同样还有Action1,Action2…Action9等,Action1封装了含有 1 个参的call()方法,即call(T t),Action2封装了含有 2 个参数的call方法,即call(T1 t1,T2 t2),以此类推;
Func0:与Action0非常相似,也有call()方法,但是它是有返回值的,同样也有Func0、Func1…Func9;
基本用法
Observable的创建
1.使用create( ),最基本的创建方式:
normalObservable = Observable.create(new Observable.OnSubscribe() {
@Override
public void call(Subscriber
相关文章推荐
- 简单入门使用Retrofit+ rxjava 下载图片
- RxJava从入门到放弃1.0--rxjava的简单使用
- 进击的RecyclerView入门一(简单上手)
- RxJava的简单入门
- RxJava系列2:RxJava简单入门
- RxJava的简单使用入门
- 带你入门学习Rxjava--上手教程
- [置顶] RxJava-入门就是那么简单
- RxJava学习(一)——RxJava入门实践与上手Demo
- 最简单的RxJava上手指南(一)
- SmartPhone 2003 手机编程实战之一:简单上手
- 学习史上最简单的Hibernate入门简介有感
- Spring 入门(一个简单的例子)
- VB Api简单入门(2)-一个简单的例子
- VB Api简单入门(3)-Api声明
- 关于在BSD系统中简单设计系统调用, --核心开发入门(2)
- 史上最简单的Hibernate入门简介
- ASP入门教程 1小时ASP入门,非常简单
- VB Api简单入门(1)-简单配置
- [转帖]ant入门:我喜欢简单:ant - java 构建工具