RxJava的使用,教你四步搞定RxBus.
教你四步搞定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.相关推荐
- xbox虚拟服务器,小白玩家看这里!国行Xbox One快速上手攻略 四步搞定
小白玩家看这里!国行Xbox One快速上手攻略 四步搞定 2014-09-25 10:55:04来源:游戏下载编辑:评论(0) 还有4天时间国行Xbox One就将与大陆玩家见面了,想想还是有点小激 ...
- 四步搞定ansible-tower
四步搞定ansible-tower 环境准备 centos7 + 2c/G (笔者测试) step1 下载ansible-tower最新版 wget https://releases.ansible. ...
- 四步搞定OPENVAS安装
四步搞定OPENVAS安装 第一步: Configure Atomicorp Repository (as user root, only once) wget -q -O http://www.at ...
- 四步搞定阿里云RDS云数据库恢复到本地mysql数据库
第1步:下载提取工具和阿里云rds数据库备份文件 1.先去阿里云数据rds后台–>备份恢复–>下载你的数据备份 2.下载阿里云官方提供的rds_backup_extract.sh数据备份文 ...
- mfc通过ado链接oracle,VS2013环境下MFC通过ADO连接Oracle数据库 四步搞定
这两天需要做有关MFC连接Oracle的项目,上网搜了老半天,东拼西凑,终于搞通了MFC下ADO方式连接Oracle的程序. 下面就按我新建的项目来进行一下说明(项目名称:adooracle) 第一步 ...
- 四步搞定小菊花 Loading 动画
做动画最要的是思路,做多了,动画其实非常简单,我们今天来实现一个小菊花加载动画: 做动画的关键一步是「拆分」,这张图中包含了 12 根「小柱子」,每根小柱子的透明度不一样,让这 12 根「小柱子」旋转 ...
- SAP GUI 自动登录教程,简单四步搞定
第一步:更改注册表 在表中添加Security->EnablePassword 值设置为1 第二步:生成快捷方式 登录SAP GUI 点击注销旁边的按钮按提示生产快捷 生成后如图 第三步:生成加 ...
- AI Studio精选项目 | 儿童X光胸部肺炎诊断,用飞桨四步搞定
点击左上方蓝字关注我们 还在愁如何入手二分类项目?今天小编给大家介绍一篇AI Studio的精品医疗行业二分类项目,只需4步即可达成,准确度达到95.5%以上. 项目介绍 肺炎是常见病,影像检查在肺炎 ...
- 搞一个短信验证码登录,难吗?四步搞定!
来源:blog.csdn.net/classabcd/java/article/details/82464582 一.首先添加一个jar包,工具类会用到 二.编写http请求工具类 三.生成四位数的方 ...
最新文章
- 人脸识别引擎SeetaFaceEngine中Alignment模块使用的测试代码
- 【错误记录】发布 Flutter 插件包报错 ( It‘s strongly recommended to include a “homepage“ or “repository“ field )
- 数据中心机房谐波治理
- Linux学习笔记(二)|常用命令
- 数据结构问题集锦 - Find Median from Data Stream
- 深度学习 AI入门-1
- CoreMotion 框架
- [转载]CMMI之功能点估算法:EI、EQ和EO
- 正态分布是离散分布还是连续分布_正态分布,谁与争峰
- OpenCvSharp (C# OpenCV) OCR实现中英文识别 文字识别(附WinForm完整源码)
- 迪杰斯特拉(dijkstra)-两个地铁站最短距离
- java中整数的整数次方_数值的整数次方java
- 请19级的童鞋们接收一下
- Link/Cut Tree学习笔记
- 台式计算机除尘方法,台式电脑除尘方法 让你的电脑焕然一新
- opencv 标定 3D项目 四
- 风枪,烙铁使用方法--焊接注意事项
- 广州工商学院计算机网络应用,广州工商学院教务网络管理系统 http://218.19.119.231/jwweb...
- 使用DiskGenius进行硬盘数据迁移
- @分布式存储ceph之RBD
热门文章
- STM32之FreeRTOS
- 计算机组成原理学习笔记第6章中央处理器CPU 6.2——数据通路DataPath
- Smart PA 参分
- 环保数采仪 功能与应用场景
- Flink大数据实时计算系列-Flink的CheckPoint原理 Flink分布式环境下的CheckPoint原理
- CSS 浮动布局放弃float,拥抱flex(详解)
- (去重)如何去掉list集合中重复的元素
- 6.ResNet(residual)
- 第12章 Docker 中 MySQL 的安装与配置
- SQL2005新建或修改维护计划提示“库没有注册”