EventBus 是一个适用于 Android 和 Java 的开源库,它使用发布者/订阅者模式实现松散耦合。EventBus 只需几行代码即可实现与解耦类的集中通信,从而简化代码、消除依赖关系并加快应用开发速度。

1.定义事件:
```java
public static class MessageEvent { /* Additional fields if needed */ }
```
准备订阅者:
声明并注释您的订阅方法,可选择指定线程模式:
@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());
**注意:**我们强烈推荐EventBus 注解处理器及其订阅者索引。这样可以避免一些常见的反射相关问题。
可在 Maven Central 获取。
Android projects:
implementation("org.greenrobot:eventbus:3.3.1")
Java projects:
implementation("org.greenrobot:eventbus-java:3.3.1")
<dependency>
<groupId>org.greenrobot</groupId>
<artifactId>eventbus-java</artifactId>
<version>3.3.1</version>
</dependency>
更多详情请访问 EventBus 网站。以下是一些您可能觉得有用的直接链接:
版权所有 (C) 2012-2021 Markus Junginger,greenrobot (https://greenrobot.org)
EventBus 二进制文件和源代码可根据Apache 许可证,版本 2.0使用。