# 5.1.EventBus

EventBus是干嘛的？

### 添加EventBus到你的项目中

通过 Gradle:

```groovy
implementation 'org.greenrobot:eventbus:3.2.0'
```

### 使用步骤

1. 定义事件:

   ```java
   public static class MessageEvent { /* Additional fields if needed */ }
   ```
2. 准备订阅: 声明订阅方法并添加注解@Subscribe,@Subscribe注解中可指定一个线程模型，详见[thread mode](https://greenrobot.org/eventbus/documentation/delivery-threads-threadmode/):

   ```java
   @Subscribe(threadMode = ThreadMode.MAIN)  
   public void onMessageEvent(MessageEvent event) {/* Do something */};
   ```

   注册并取消注册你的订阅器. 例如在Android中, 根据activities或fragments的声明周期注册和取消注册订阅器:

   ```java
    @Override
    public void onStart() {
        super.onStart();
        EventBus.getDefault().register(this);
    }

    @Override
    public void onStop() {
        super.onStop();
        EventBus.getDefault().unregister(this);
    }
   ```
3. 发送事件:

   ```java
    EventBus.getDefault().post(new MessageEvent());
   ```

完整文档请见 [getting started guide](https://greenrobot.org/eventbus/documentation/how-to-get-started/).

用法示例请见 [examples](https://github.com/greenrobot-team/greenrobot-examples).

###
