原文地址:https://github.com/greenrobot/EventBus
EventBus
EventBus是一个针对Android进行了优化的 发布/订阅 事件总线。
EventBus...
- 简化组件之间的通信过程
- 解耦事件发布者和接受者
- 在Activities,Fragment和后台线程中表现良好
- 避免复杂易错的依赖和生命周期问题
- 让你的代码更简单
- 速度快
- 轻量级(大约50K的jar包)
- 在100,000,000+次apps的安装实践中得到证明
- 具有线程间传递和订阅者优先级等高级特性
使用EventBus的三步
- 定义事件
public static class MessageEvent { /* 如果有必要,可以增加字段 */ }
- 准备订阅者:声明和注释你的订阅者方法,可选地指定线程模式
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(MessageEvent event) {/* 写相关代码 */};
注册和取消注册您的订阅者。例如在Android上,Activities和Fragments通常应该根据它们的生命周期来注册:
@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());
阅读完整的入门指南
在你的项目中集成EventBus
通过Gradle:
compile 'org.greenrobot:eventbus:3.0.0'
通过Maven
<dependency>
<groupId>org.greenrobot</groupId>
<artifactId>eventbus</artifactId>
<version>3.0.0</version>
</dependency>
或者从Maven中央仓库下载最新的Jar包
主页、文档、链接
有关更多详情,请查看EventBus官网。在这里你可能会发现一些有用的直接链接:
EventBus和其它解决方案比较表现如何,像和Square提供的Otto比较?看一下这个对照表
版权许可证
版权所有(C)2012-2016 Markus Junginger,greenrobot(http://greenrobot.org)
EventBus二进制文件和源代码依据Apache License, Version 2.0。