1、使用Observable.range(int start, int count)创建一个发射特定整数序列的Observable,第一个参数为起始值,第二个为发送的个数,如果为0则不发送,负数则抛异常。

import rx.Observable;
import rx.Subscriber; public class MyDemo { public static void main(String[] args) {
//创建发射源(被观察者)
Observable<Integer> observable = Observable.range(, );
//创建接收源(观察者)
Subscriber<Object> subscriber = new Subscriber<Object>() {
@Override
public void onStart() {
System.out.println("Subscriber onStart: ");
} @Override
public void onCompleted() {
System.out.println("Subscriber onCompleted: ");
} @Override
public void onError(Throwable e) {
System.out.println("Subscriber onError: " + e.toString());
} @Override
public void onNext(Object t) {
System.out.println("Subscriber onNext: " + t);
}
};
//订阅
observable.subscribe(subscriber);
}
}

2、Subscriber的简化

RxJava提供了Action0等一系列的类似的类,当我们不需要(或者不关心)Subscriber的全部方法(如只关心onNext方法),就可以使用Action类来替代Subscriber。

2.1、当我们并不关心OnComplete和OnError,可以使用 subscribe(onNextAction),我们只需要在onNext的时候做一些处理,这时候就可以使用Action1类:

import rx.Observable;
import rx.functions.Action1; public class MyDemo { public static void main(String[] args) {
Person person = new Person(, "js");
//创建发射源(被观察者)
Observable<Person> observable = Observable.just(person);
//订阅,创建接收源(观察者)
observable.subscribe(new Action1<Person>() { @Override
public void call(Person t) {
System.out.println("Action1 call:" + t.toString());
}
});
}
private static class Person{
private int age;
private String name; public Person(int age, String name) {
this.age = age;
this.name = name;
} public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
} @Override
public String toString() {
return "Person[age=" + age + ",name=" + name + "]" ;
}
}
}

2.2、subscribe方法还有两个重载方法,分别是:

  • 两个参数: subscribe(onNextAction , onErrorAction)
  • 三个参数: subscribe(onNextAction , onErrorAction ,onCompletedAction)
import rx.Observable;
import rx.functions.Action0;
import rx.functions.Action1; public class MyDemo { public static void main(String[] args) {
Person person = new Person(, "js");
//创建发射源(被观察者)
Observable<Person> observable = Observable.just(person);
//订阅,创建接收源(观察者)
Action1<Person> onNextAction = new Action1<Person>() {
@Override
public void call(Person t) {
System.out.println("Action1 call:" + t.toString());
}
};
Action1<Throwable> onErrorAction = new Action1<Throwable>() {
@Override
public void call(Throwable t) {
System.out.println("Action1 call:" + t.toString());
}
};
Action0 onCompletedAction = new Action0() {
@Override
public void call() {
System.out.println("Action0 call");
}
};
observable.subscribe(onNextAction, onErrorAction);
observable.subscribe(onNextAction, onErrorAction, onCompletedAction);
}
private static class Person{
private int age;
private String name; public Person(int age, String name) {
this.age = age;
this.name = name;
} public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
} @Override
public String toString() {
return "Person[age=" + age + ",name=" + name + "]" ;
}
}
}

Rxjava学习笔记的更多相关文章

  1. RxJava学习笔记(操作符)

    前言 上一篇文章介绍了RxJava的基础知识和简单实现,篇幅已经比较多了,所以把操作符(Operators)相关的内容放在这一篇.有了上一篇文章的基础,相信会比较容易理解操作符相关的内容了. 操作符( ...

  2. RxJava 学习笔记(一)

    最近Android6.0的权限问题,要把之前的APP进行改造,用到了RxPermission框架!之前了解过RXJAVA,但是由于之前项目一直没有使用这个框架,所以也就一直搁置了.正好Rxpermis ...

  3. RxJava学习笔记(组合Observables)(转)

    组合Observable 当我们需要处理多个Observable的时候,我们可以通过Rxjava的组合函数来创建我们自己想要的Observable. Merge RxJava的 merge() 方法将 ...

  4. ReactiveX 学习笔记(0)学习资源

    ReactiveX 学习笔记 ReactiveX 学习笔记(1) ReactiveX 学习笔记(2)创建数据流 ReactiveX 学习笔记(3)转换数据流 ReactiveX 学习笔记(4)过滤数据 ...

  5. RxJava2.0学习笔记2 2018年7月3日 周二

    摘记: 1.map -- 转换  有些服务端的接口设计,会在返回的数据外层包裹一些额外信息,这些信息对于调试很有用,但本地显示是用不到的.使用 map() 可以把外层的格式剥掉,只留下本地会用到的核心 ...

  6. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  7. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  8. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  9. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

随机推荐

  1. VeeValidate——vue2.0表单验证插件

    一.vee-validate入门 vee-validate 是一个轻量级的 vue表单验证插件.它有很多开箱即用的验证规则,也支持自定义验证规则.它是基于模板的,因此它与HTML5验证API类似且熟悉 ...

  2. (转)yum只下载不安装软件包

    方法一:使用yum的downloadonly插件 步骤: (1) 先安装downloadonly插件  yum install yum-plugin-downloadonly (2)使用–downlo ...

  3. oracle--oracle18C DBCA建库(一)

    一,环境配置 克隆或者安装一台oracle18c 只需要安装软件即可 主机名 ip 角色 db_inique oracle18c 192.168.0.162 主 oracle oracle18c2 1 ...

  4. Exceptionless in Docker on Linux 搭建及部署疑难杂症

    https://github.com/exceptionless/Exceptionless https://github.com/exceptionless/Exceptionless.UI 项目拉 ...

  5. JavaScript 系列--JavaScript一些奇淫技巧的实现方法(二)数字格式化 1234567890转1,234,567,890;argruments 对象(类数组)转换成数组

    一.前言 之前写了一篇文章:JavaScript 系列--JavaScript一些奇淫技巧的实现方法(一)简短的sleep函数,获取时间戳 https://www.mwcxs.top/page/746 ...

  6. java对接微软认证,用oauth2.0实现

    由于官网所说所写的demo比较官方,比较难理解,而且只能到获取到token阶段,没有用户到用户信息.就算理解官网所写的,但是还是不能获取到用户信息,这对于业务系统做单点对接,增加很大的难度,附件代码是 ...

  7. orale数据库.实例.表空间.用户.表

    近期因为工作原因接触到Oracle数据库.了解到Oracle和mysql的结构上还是有很大的区别的. Oracle数据库---实例---表空间---用户---表 我们将从这5个方面来了解Oracle ...

  8. vulnhub之SP:Harrison靶机

    下载地址:‘https://www.vulnhub.com/entry/sp-harrison,302/’ 环境:靶机放在virtualbox上运行,网卡模式 攻击机:kali Linux运行在VMw ...

  9. unity资源机制(转)

    原文地址:https://www.jianshu.com/p/ca5cb9d910c0作者:重装机霸 2.资源概述 Unity必须通过导入将所支持的资源序列化,生成AssetComponents后,才 ...

  10. 关于宝塔面板windows版6.2的一些使用心得

    关于宝塔面板windows版6.2的一些使用心得 第一次使用windows版本的 给客户搭建  asp+mssql的需求 心得1   安装   server2012 基于python开发的,所以安装的 ...