RxBus实现

1 添加Gradle:

//RxAndroid

compile 'io.reactivex.rxjava2:rxandroid:2.0.1'

compile 'io.reactivex.rxjava2:rxjava:2.0.4'

2 添加RxBus类:

public class RxBus {

private static volatile RxBus mInstance;

private final Subject subject = PublishSubject.create().toSerialized();

private Disposable dispoable;

private RxBus() {

}

public static RxBus getInstance() {

if (mInstance == null) {

synchronized (RxBus.class) {

if (mInstance == null) {

mInstance = new RxBus();

}

}

}

return mInstance;

}

/**

* 发送事件

* @param object

*/

public void send(Object object) {

subject.onNext(object);

}

/**

* @param classType

* @param

* @return

*/

public Observable toObservale(Class classType) {

return subject.ofType(classType);

}

/**

* 订阅

* @param bean

* @param consumer

*/

public void subscribe(Class bean, Consumer consumer) {

dispoable = toObservale(bean).subscribe(consumer);

}

/**

* 取消订阅

*/

public void unSubcribe(){

if (dispoable != null && dispoable.isDisposed()){

dispoable.dispose();

}

}

}

3 添加监听

RxBus.getInstance().subscribe(String.class, new Consumer() {

@Override

public void accept(String path) throws Exception {

}

});

4 发送监听事件:

RxBus.getInstance().send("发送事件");

5 在退出Activity(Fragment)时,取消监听:

RxBus.getInstance().unSubcribe();

rxbus 源码_RxBus---使用RxAndroid2.0实现RxBus相关推荐

  1. rxbus 源码_RxBus的实现及简单使用

    RxJava目前已经很火了,如果你尚未了解请看这里.对于RxJava这里不多做介绍. RxBus并不是一个库,而是一种模式.相信大多数开发者都使用过EventBus,作为事件总线通信库,如果你的项目已 ...

  2. php 7.0 编译安装mysql_源码编译安装php7.0.5

    源码编译安装php7.0.5 源码包下载地址 安装epel扩展yum源 [root@xuegod63 ~]# yum clean all [root@xuegod63 ~]# yum list 注:R ...

  3. ubuntu16.04源码安装opencv3.4.0

    ubuntu16.04源码安装opencv3.4.0 opencv下载地址:https://opencv.org/releases/page/3/ 1.下载安装包 2.安装依赖 sudo apt-ge ...

  4. 微趣能Weiqn(微信源码下载)V1.5.0.2beta官方版

    名称:微趣能Weiqn(微信源码下载)V1.5.0.2beta官方版 版本:1.5.0.2 软件大小:9.25 MB 软件语言:简体中文 软件授权:免费版 应用平台:Win8/Win7/WinXP 微 ...

  5. 07-PDI(Kettle)源码编译8.2.0.0.R版本

    文章目录 07-PDI(Kettle)源码编译8.2.0.0.R版本 1.安装PDI8.2.0.0.R的parent工程到本地 1.1配置Maven的settings.xml文件 1.2安装PDI源码 ...

  6. 一次令人吐血的ubuntu源码安装gcc-5.4.0经历

    ubuntu20.04源码安装gcc-5.4.0 虽然cilkplus已经被弃用了,但是因为代码里用到了cilkplus,所以还是要安装gcc-5.4.0,因为make一直不通过,整个过程费了好大功夫 ...

  7. baocms伪静态_PHP源码:BAOCMS v5.0白金版 本地O2O生活电商门户系统+微信+同步wap手机版宝...

    5.0安装说明 1.确认你的PHP版本必须是5.3或者上 2.phpmyadmin 导入数据库 不懂的请 --------------------------------- ============= ...

  8. 分享个手机棋牌游戏源码  欢乐麻将2.0 使用cocos2d-x引擎开发

    分享个手机棋牌游戏源码  欢乐麻将2.0 使用cocos2d-x引擎开发 https://bbs.wxrym.com/thread-90094-1-1.html (出处: 外星人源码论坛) 不知不觉已 ...

  9. DJI ManiFold-2G(Nvidia Jetson TX2)源码安装Tensorflow-1.12.0

    Dji ManiFold-2G(Nivida Jetson TX2)源码安装Tensorflow-1.12.0 Cuda 9.0 Jetpack 3.3 Python 3.5 cuDNN 7.4.1( ...

最新文章

  1. 独家 | 教你用Scrapy建立你自己的数据集(附视频)
  2. 计算机 二进制 中国,二进制与计算机
  3. 大数据架构如何做到流批一体?【对于Flink等流批一体的概念做了很好的澄清!】
  4. 用华为HMS core的秘钥库文件不存在或者已经存在的解决方案
  5. 动画制作c语言程序,C语言动画制作
  6. Oracle修改SID(实例名)
  7. c语言随机读写信息fetch,北京大学信息科学技术学院考试试卷-计算机系统导论-期中-2015(16页)-原创力文档...
  8. Swift3 获取系统音量和监听系统音量
  9. 两分钟看懂CPU生产过程
  10. C++复合类型-引用变量
  11. tomcat+mysql+腾讯云_腾讯云服务器配置tomcat和mysql
  12. Arduino+WZ指令+Onenet
  13. 【CE入门教程】使用CE 分析扫雷,查找雷数、笑脸、计时器的内存地址
  14. SPOOLing和虚拟化
  15. 2013年9月中秋云南昆明、丽江、泸沽湖、香格里拉、梅里雪山、虎跳峡之旅
  16. css实现跳动的心形图案
  17. 《人类简史》--摘录
  18. python while遍历字符串_零基础学Python:while循环和for遍历
  19. The NTVDM CPU has encountered an illegal instruction. CS:0006 IP:130a ....
  20. 清空Redis集群数据工具

热门文章

  1. HTML 列表去掉前边点和序号
  2. GP——数据库常用命令
  3. c# 控制台485串口连接
  4. 四、鼎捷T100总账管理之期末账务管理篇
  5. java mysql判断字符串相等_【Java】利用String的compareTo比较两个时期字符串
  6. java实现简单扫雷
  7. 度量衡计算工具_【度量衡换算器下载】中国古代度量衡换算器 v2.1 中文版-开心电玩...
  8. 导出的excel表格是乱码的解决方法
  9. 适合AI初学者的10个机器学习项目!入门so easy
  10. 整流器+逆变器。 前级采用PWM整流器,采用双闭环前馈解耦控制