EventBus(一) —— GitHub简介

原文地址:https://github.com/greenrobot/EventBus

EventBus


EventBus是一个针对Android进行了优化的 发布/订阅 事件总线。

EventBus(一) —— GitHub简介_第1张图片
EventBus协作图

EventBus...

  • 简化组件之间的通信过程
    • 解耦事件发布者和接受者
    • 在Activities,Fragment和后台线程中表现良好
    • 避免复杂易错的依赖和生命周期问题
  • 让你的代码更简单
  • 速度快
  • 轻量级(大约50K的jar包)
  • 在100,000,000+次apps的安装实践中得到证明
  • 具有线程间传递和订阅者优先级等高级特性

使用EventBus的三步


  1. 定义事件
public static class MessageEvent { /* 如果有必要,可以增加字段 */ }
  1. 准备订阅者:声明和注释你的订阅者方法,可选地指定线程模式
@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);
 }
  1. 发送事件
EventBus.getDefault().post(new MessageEvent());

阅读完整的入门指南

在你的项目中集成EventBus


通过Gradle:

compile 'org.greenrobot:eventbus:3.0.0'

通过Maven


    org.greenrobot
    eventbus
    3.0.0

或者从Maven中央仓库下载最新的Jar包

主页、文档、链接


有关更多详情,请查看EventBus官网。在这里你可能会发现一些有用的直接链接:

特性
文档
混淆方法
更新日志
常问问题

EventBus和其它解决方案比较表现如何,像和Square提供的Otto比较?看一下这个对照表

版权许可证


版权所有(C)2012-2016 Markus Junginger,greenrobot(http://greenrobot.org)
EventBus二进制文件和源代码依据Apache License, Version 2.0。

你可能感兴趣的:(EventBus(一) —— GitHub简介)