EventBus 3.0 从入门到精通——初识EventBus
来源:互联网 发布:matlab矩阵循环赋值 编辑:程序博客网 时间:2024/06/01 08:20
文章索引:
EventBus 3.0 从入门到精通——初识EventBus
EventBus 3.0 从入门到精通——EventBus的应用场景
EventBus 3.0 从入门到精通——使用详解(一)
EventBus 3.0 从入门到精通——使用详解(二)
最近接手了一个项目,发现项目中有使用EventBus,因为之前只是泛泛的了解,没有深入学习过,所以借着这次机会就往深了了解一下,分享出来与大家共勉。先看看GitHub上的介绍吧。
EventBus的GitHub地址
EventBus简介
eventbus是一个针对Android优化的发布/订阅事件总线。
EventBus的特点:
- 简化组件之间的通信
- 事件的发送者和接收者解耦
- 对于Activities, Fragments和后台线程的支持表现更好
- 避免了复杂并且易出错的依赖和生命周期的问题(ps:这里的依赖我理解就是解耦的意思)
- 是你的代码更加简单
- 更加快速
- 体积更小
- 已经有超过100,000,000+的apps安装使用
- 有线程传送和优先订阅等高级特性
向你的project中添加EventBus
- 通过Gradle
compile 'org.greenrobot:eventbus:3.0.0'
- 通过Maven
<dependency> <groupId>org.greenrobot</groupId> <artifactId>eventbus</artifactId> <version>3.0.0</version></dependency>
只用三个步骤开始使用EventBus
- 定义事件
public static class MessageEvent { /* 添加需要的代码 */ }
- 创建订阅者:声明一个订阅者,并且用注解标注它。之后再指定一个线程模式
@Subscribe(threadMode = ThreadMode.MAIN) public void onMessageEvent(MessageEvent event) {/* Do something */};
注册和反注册你的订阅者。举个例子在Android中通常可以在Activity和Fragment的声明周期方法中使用。
@Override public void onStart() { super.onStart(); EventBus.getDefault().register(this); } @Override public void onStop() { super.onStop(); EventBus.getDefault().unregister(this); }
- 发布事件
EventBus.getDefault().post(new MessageEvent());
以上是GitHub上官方的一个描述,通过上面的简单的几个步骤我们就可以先把EventBus使用起来,但是上面没有提及EventBus的使用场景以及一些高级特性,我会在下面的文章中为大家总结出来。
阅读全文
1 0
- EventBus 3.0 从入门到精通——初识EventBus
- EventBus 3.0 从入门到精通——EventBus 3.0 是如何应用注解的?
- EventBus 3.0 从入门到精通——EventBus的应用场景
- EventBus 3.0 从入门到精通——使用详解(一)
- EventBus 3.0 从入门到精通——使用详解(二)
- 初识EventBus
- 初识EventBus
- 初识 Eventbus
- EventBus初识
- runtime从入门到精通(一)—— 初识runtime
- runtime从入门到精通(一)—— 初识runtime
- MongoDB——从入门到精通
- EventBus从应用到源码分析
- EventBus
- EventBus
- EventBus
- EventBus
- EventBus
- Android 6.0 运行时权限处理
- Excel文本字符串处理函数left,right,mid,find
- redis发布订阅
- Spring中jdbcTemplate的用法实例
- linux用户态和kernel之间共享内存 --- remap_pfn_range + mmap的实现方式
- EventBus 3.0 从入门到精通——初识EventBus
- 开源智能家居工具整理
- Leetcode题解---Regular Expression Matching Java实现
- 谈一谈棋盘覆盖问题
- caffe安装ubuntu16.04 opencv2.4.13 anaconda2
- 奥威Power-BI荣获十佳信息化优秀产品奖!
- R已经可以进行深度学习!!!tensorflow&keras
- 网络<一>Http/Https
- SparkContext创建初始化完成的主要工作