教你四步搞定RxBus.


1,在你的工程中添加依赖

 

dependencies {compile fileTree(include: ['*.jar'], dir: 'libs')testCompile 'junit:junit:4.12'compile 'com.android.support:appcompat-v7:23.3.0'<span style="color:#ff0000;"> <em>compile 'io.reactivex:rxjava:1.1.9'</em></span>
}

2,

在你的项目中添加Rxbus.java工具类,方便使用RxJava

import rx.Observable;
import rx.subjects.PublishSubject;
import rx.subjects.SerializedSubject;
import rx.subjects.Subject;public class RxBus {private RxBus() {}private static class SingleHolder {public static RxBus mRxBus = new RxBus();}public static RxBus getInstance() {return SingleHolder.mRxBus;}private final Subject<Object, Object> _bus = new SerializedSubject<>(PublishSubject.create());public void send(Object o) {_bus.onNext(o);}public Observable<Object> toObserverable() {return _bus;}
}



3,接下来就可以使用了

  在需要的地方首先订阅.最后别忘了解除订阅.

package com.example.jiang_yan.rxbus;import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.TextView;import rx.Subscription;
import rx.functions.Action1;/*** Created by jiang_yan on 2016/8/25.*/
public class B extends Activity{private Subscription mSubscribe;private TextView tv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.b);tv = (TextView) findViewById(R.id.tv_b);//订阅subscribeRxBus();}/**
订阅
****/
    private void subscribeRxBus() {mSubscribe = RxBus.getInstance().toObserverable().subscribe(new Action1<Object>() {@Overridepublic void call(Object o) {
//在这里就是收到的发送来的数据Log.e("RxBus", "call: " + o);if (o instanceof CharSequence) {tv.setText(o.toString());}}});}@Overrideprotected void onDestroy() {super.onDestroy();if (mSubscribe != null && !mSubscribe.isUnsubscribed()) {mSubscribe.unsubscribe();}}
}


4,发送数据(就更简单了)

其实就是一行代码

RxBus.getInstance().send("要发送的东西");
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;import rx.Subscription;public class MainActivity extends AppCompatActivity {private Subscription mSubscribe;Handler mHandler = new Handler();private TextView tv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tv = (TextView) findViewById(R.id.tv);//跳转到Btv.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {startActivity(new Intent(MainActivity.this,B.class));}});mHandler.postDelayed(new Runnable() {@Overridepublic void run() {mHandler.postDelayed(this,1000);RxBus.getInstance().send(System.currentTimeMillis()+"");}},1000);}}

完了,就这么简单.你会了吗?

RxJava的使用,教你四步搞定RxBus.相关推荐

  1. xbox虚拟服务器,小白玩家看这里!国行Xbox One快速上手攻略 四步搞定

    小白玩家看这里!国行Xbox One快速上手攻略 四步搞定 2014-09-25 10:55:04来源:游戏下载编辑:评论(0) 还有4天时间国行Xbox One就将与大陆玩家见面了,想想还是有点小激 ...

  2. 四步搞定ansible-tower

    四步搞定ansible-tower 环境准备 centos7 + 2c/G (笔者测试) step1 下载ansible-tower最新版 wget https://releases.ansible. ...

  3. 四步搞定OPENVAS安装

    四步搞定OPENVAS安装 第一步: Configure Atomicorp Repository (as user root, only once) wget -q -O http://www.at ...

  4. 四步搞定阿里云RDS云数据库恢复到本地mysql数据库

    第1步:下载提取工具和阿里云rds数据库备份文件 1.先去阿里云数据rds后台–>备份恢复–>下载你的数据备份 2.下载阿里云官方提供的rds_backup_extract.sh数据备份文 ...

  5. mfc通过ado链接oracle,VS2013环境下MFC通过ADO连接Oracle数据库 四步搞定

    这两天需要做有关MFC连接Oracle的项目,上网搜了老半天,东拼西凑,终于搞通了MFC下ADO方式连接Oracle的程序. 下面就按我新建的项目来进行一下说明(项目名称:adooracle) 第一步 ...

  6. 四步搞定小菊花 Loading 动画

    做动画最要的是思路,做多了,动画其实非常简单,我们今天来实现一个小菊花加载动画: 做动画的关键一步是「拆分」,这张图中包含了 12 根「小柱子」,每根小柱子的透明度不一样,让这 12 根「小柱子」旋转 ...

  7. SAP GUI 自动登录教程,简单四步搞定

    第一步:更改注册表 在表中添加Security->EnablePassword 值设置为1 第二步:生成快捷方式 登录SAP GUI 点击注销旁边的按钮按提示生产快捷 生成后如图 第三步:生成加 ...

  8. AI Studio精选项目 | 儿童X光胸部肺炎诊断,用飞桨四步搞定

    点击左上方蓝字关注我们 还在愁如何入手二分类项目?今天小编给大家介绍一篇AI Studio的精品医疗行业二分类项目,只需4步即可达成,准确度达到95.5%以上. 项目介绍 肺炎是常见病,影像检查在肺炎 ...

  9. 搞一个短信验证码登录,难吗?四步搞定!

    来源:blog.csdn.net/classabcd/java/article/details/82464582 一.首先添加一个jar包,工具类会用到 二.编写http请求工具类 三.生成四位数的方 ...

最新文章

  1. 人脸识别引擎SeetaFaceEngine中Alignment模块使用的测试代码
  2. 【错误记录】发布 Flutter 插件包报错 ( It‘s strongly recommended to include a “homepage“ or “repository“ field )
  3. 数据中心机房谐波治理
  4. Linux学习笔记(二)|常用命令
  5. 数据结构问题集锦 - Find Median from Data Stream
  6. 深度学习 AI入门-1
  7. CoreMotion 框架
  8. [转载]CMMI之功能点估算法:EI、EQ和EO
  9. 正态分布是离散分布还是连续分布_正态分布,谁与争峰
  10. OpenCvSharp (C# OpenCV) OCR实现中英文识别 文字识别(附WinForm完整源码)
  11. 迪杰斯特拉(dijkstra)-两个地铁站最短距离
  12. java中整数的整数次方_数值的整数次方java
  13. 请19级的童鞋们接收一下
  14. Link/Cut Tree学习笔记
  15. 台式计算机除尘方法,台式电脑除尘方法 让你的电脑焕然一新
  16. opencv 标定 3D项目 四
  17. 风枪,烙铁使用方法--焊接注意事项
  18. 广州工商学院计算机网络应用,广州工商学院教务网络管理系统 http://218.19.119.231/jwweb...
  19. 使用DiskGenius进行硬盘数据迁移
  20. @分布式存储ceph之RBD

热门文章

  1. STM32之FreeRTOS
  2. 计算机组成原理学习笔记第6章中央处理器CPU 6.2——数据通路DataPath
  3. Smart PA 参分
  4. 环保数采仪 功能与应用场景
  5. Flink大数据实时计算系列-Flink的CheckPoint原理 Flink分布式环境下的CheckPoint原理
  6. CSS 浮动布局放弃float,拥抱flex(详解)
  7. (去重)如何去掉list集合中重复的元素
  8. 6.ResNet(residual)
  9. 第12章 Docker 中 MySQL 的安装与配置
  10. SQL2005新建或修改维护计划提示“库没有注册”