作者:某人_Valar
如需转载请保留原文链接
EventBus的GitHub地址:https://github.com/greenrobot/EventBus
本文只是做一个简单的介绍,实现过程会在下一文中
相关文章
本文结构
- 1.简介
- 2.使用步骤
- 3.粘性(sticky)事件的介绍
1 简介
EventBus是一个Android端优化的publish/subscribe消息总线,简化了应用程序内各组件间、组件与后台线程间的通信。
可以替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息。
2 使用步骤
- 引用包
gradle下
compile 'org.greenrobot:eventbus:3.0.0'
maven下
<dependency>
<groupId>org.greenrobot</groupId>
<artifactId>eventbus</artifactId>
<version>3.0.0</version>
</dependency>
- 注册
EventBus.getDefault().register();
- 解注册
EventBus.getDefault().unregister();
- 构造发送消息类
- 发布消息
EventBus.getDefault().post();
- 接受消息(有四种方式)
- ThreadMode.MAIN表示在主线程中执行
- ThreadMode.BACKGROUND表示该方法在后台(子线程)执行,不能并发处理
- ThreadMode.ASYNC也表示在后台(子线程)执行,可以异步并发处理
- ThreadMode.POSTING表示该方法和消息发送方在同一个线程中执行
3 粘性(sticky)事件
对于之前说的使用方法,都是需要先注册(register),再发送消息(POST),才能接收到事件。
如果使用postSticky发送事件,就先接受到事件,之后再进行注册。
步骤如下:
- 构造发送消息类
- 发布消息
- 接受消息
- 注册
- 解注册