编程开发 购物 网址 游戏 小说 歌词 地图 快照 股票 美女 新闻 笑话 | 汉字 软件 日历 阅读 下载 图书馆 开发 租车 短信 China
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
移动开发 架构设计 编程语言 互联网 开发经验 Web前端 开发总结
开发杂谈 系统运维 研发管理 数据库 云 计 算 Java开发
VC(MFC) Delphi VB C++(C语言) C++ Builder 其它开发语言 云计算 Java开发 .Net开发 IOS开发 Android开发 PHP语言 JavaScript
ASP语言 HTML(CSS) HTML5 Apache MSSQL数据库 Oracle数据库 PowerBuilder Informatica 其它数据库 硬件及嵌入式开发 Linux开发资料
  编程开发知识库 -> 移动开发 -> Android事件总线 EventBus3.0用法学习 -> 正文阅读
 

[移动开发]Android事件总线 EventBus3.0用法学习[第1页]

http://blog.csdn.net/itachi85/article/details/52205464
1.EventBus的三要素 Event:事件,可以是任意类型的对象。 Subscriber:事件订阅者,在EventBus3.0之前消息处理的方法只能限定于onEvent、onEventMainThread、onEventBackgroundThread和onEventAsync,他们分别代表四种线程模型。而在EventBus3.0之后,事件处理的方法可以随便取名,但是需要添加一个注解@Subscribe,并且要指定线程模型(默认为POSTING),四种线程模型下面会讲到。 Publisher:事件发布者,可以在任意线程任意位置发送事件,直接调用EventBus的post(Object)方法。可以自己实例化EventBus对象,但一般使用EventBus.getDefault()就好了,根据post函数参数的类型,会自动调用订阅相应类型事件的函数。 2.EventBus的四种ThreadMode(线程模型) POSTING(默认):如果使用事件处理函数指定了线程模型为POSTING,那么该事件在哪个线程发布出来的,事件处理函数就会在这个线程中运行,也就是说发布事件和接收事件在同一个线程。在线程模型为POSTING的事件处理函数中尽量避免执行耗时操作,因为它会阻塞事件的传递,甚至有可能会引起ANR。 MAIN: 事件的处理会在UI线程中执行。事件处理时间不能太长,长了会ANR的。 BACKGROUND:如果事件是在UI线程中发布出来的,那么该事件处理函数就会在新的线程中运行,如果事件本来就是子线程中发布出来的,那么该事件处理函数直接在发布事件的线程中执行。在此事件处理函数中禁止进行UI更新操作。 ASYNC:无论事件在哪个线程发布,该事件处理函数都会在新建的子线程中执行,同样,此事件处理函数中禁止进行UI更新操作。 3.EventBus基本用法
1.自定义一个事件类

public class MessageEvent {
    ...
}

2.在需要订阅事件的地方注册事件

EventBus.getDefault().register(this);

3.发送事件

EventBus.getDefault().post(messageEvent);

4.处理事件

@Subscribe(threadMode = ThreadMode.MAIN)
public void XXX(MessageEvent messageEvent) {
    ...
}

前面我们说过,消息处理的方法可以随便取名,但是需要添加一个注解@Subscribe,并且要指定线程模型(默认为POSTING)。
5.取消事件订阅

EventBus.getDefault().unregister(this);

4.EventBus3.0应用
添加依赖库
Android Studio 配置gradle:

compile 'org.greenrobot:eventbus:3.0.0'

5.EventBus3.0粘性事件
除了上面讲的普通事件外,EventBus还支持发送黏性事件,就是在发送事件之后再订阅该事件也能收到该事件,跟黏性广播类似。
阅读全文
版权声明:本文为博主原创文章,未经博主允许不得转载。
本文已收录于以下专栏:

发表评论
HTML/XML objective-c Delphi Ruby PHP C# C++ JavaScript Visual Basic Python Java CSS SQL 其它
相关文章推荐
Android事件总线(一)EventBus3.0用法全解析
EventBus是一款针对Android优化的发布/订阅事件总线。简化了应用程序内各组件间、组件与后台线程间的通信。优点是开销小,代码更优雅,以及将发送者和接收者解耦。如果Activity和Activ...
itachi85 2016-08-17 10:21 26953 Android事件总线(一)EventBus3.0用法全解析
转载地址:http://blog.csdn.net/itachi85/article/details/52205464 前言 EventBus是一款针对Android优化的发布/订...
xhbxhbsq 2017-03-03 18:00 523

Android事件总线框架之EventBus(3.0为例)
2016-05-03 16:00 10.60MB 下载
Android事件总线EventBus 3.0的基本使用
Android组件间、线程间的通信,可以用Handler,BroadcastReceiver,回调等方法来实现,但是这些方法的实现有些繁琐。EventBus可以完成以上所有功能,并采用了“订阅/发布模...
saker_jing 2017-02-20 14:32 588 Android事件总线(二)EventBus3.0源码解析
转载地址:http://blog.csdn.net/itachi85/article/details/52260693 相关文章 Android事件总线(一)EventBus3....
xhbxhbsq 2017-03-03 18:02 294 Android事件总线(二)EventBus3.0源码解析
上一篇我们讲到了EventBus3.0的用法,这一篇我们来讲一下EventBus3.0的源码以及它的利与弊。
itachi85 2016-08-22 10:32 7206 Android事件总线框架之EventBus(3.0为例)
实际项目开发过程中,经常遇到如下场景:不同的应用程序组件的控件间具有一定的相互关联性,其中用户对后者进行的某种操作会引起前者的相应改变。举一个具体的场景:以新浪微博为例,在新浪微博首页好友动态列表页和...
kpioneer123 2016-05-03 15:41 436 Android事件总线EventBus的用法详解
Android中模块更新的机制有很多种,EventBus又是其中使用起来较为方便简单的一种,本文就针对EventBus在平常工作中的用法,做一个个人总结。主要分为以下几点来展示: 介绍 源码分析 用法...
u013606974 2016-07-04 11:24 3739 Android学习系列(43)--使用事件总线框架EventBus和Otto
事件总线框架针对事件提供统一订阅,发布以达到组件间通信的解决方案。原理观察者模式。EventBus和Otto先看EventBus的官方定义:Android optimized event bus th...
javawebsoa 2015-01-12 13:20 903 EventBus 3.0 事件总线介绍
很早就知道这个库,这次不能放过他了要好好学习下。EventBus到底是什么呢?EventBus是一个小巧好用的事件总线框架。类似的事件总线框架还有otto。我的理解就是用来方便的在Activity,F...
android2me 2017-03-27 16:26 201
mingtiannihao623 +关注
原创 36 粉丝 1 喜欢 0 码云  
他的最新文章 更多文章
python 学习一 React Native 学习尝试 React Native构建官方example学习笔记
在线课程

【免费】搜狗机器翻译技术分享
讲师:

深度学习在推荐领域的应用和实践
讲师:吴岸城
热门文章 cordova例子
683
android在线源码查看http://androidxref.com/
474
ddpush原理及过程分析学习转自http://blog.csdn.net/brok1n/article/details/45272573
412
openfire开源服务器的安装与配置
281
解决重写的TextView跑马灯一直跑的问题
253
0
  移动开发 最新文章
Android设计模式之——状态模式
Android解决ScrollView默认不从顶部显示
关于在QtChart中绘出的图形进行点选的问题
Android Studio入门阶段的山路弯弯之Androi
Android设计模式之——责任链模式
DialogFragment实现自定义布局的小技巧
基于局部flush和全屏flush
android 使用binder实现Service与activity进
android性能优化实战理论篇
jenkins+maven+svn实现简单的一键发布
上一篇文章      下一篇文章      查看所有文章
加:2017-10-30 03:59:30  更:2017-10-30 03:59:38 
VC(MFC) Delphi VB C++(C语言) C++ Builder 其它开发语言 云计算 Java开发 .Net开发 IOS开发 Android开发 PHP语言 JavaScript
ASP语言 HTML(CSS) HTML5 Apache MSSQL数据库 Oracle数据库 PowerBuilder Informatica 其它数据库 硬件及嵌入式开发 Linux开发资料
360图书馆 软件开发资料 文字转语音 购物精选 软件下载 美食菜谱 新闻资讯 电影视频 小游戏 Chinese Culture 股票 租车
生肖星座 三丰软件 视频 开发 短信 中国文化 网文精选 搜图网 美图 阅读网 多播 租车 短信 看图 日历 万年历 2018年2日历
2018-2-26 1:20:30
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  编程开发知识库