XBus 是一个轻量级的事件总线库,旨在提供简单、高效、易用的事件通信机制。我们的设计目标如下:
- 易用性:XBus 的 API 设计简洁明了,易于集成和使用。
- 高性能:提供过反射和注解处理器(APT)生成订阅者方法索引,后者可提高事件查找和调用的性能。
- 可扩展性:XEventBus 具有良好的可扩展性,可以根据需求添加更多功能,如优先级控制、延时处理等。
详细实现可看文章《手写 EventBus:从零到一实现自己的事件总线库》
allprojects {
repositories {
...
maven {
url 'https://lucasxu01.github.io/maven-repository/'
}
}
}
implementation 'com.lucas:xbus:1.0.0'
implementation 'com.lucas:xbus-annotations:1.0.0'
annotationProcessor 'com.lucas:xbus-apt-processor:1.0.0'
XEventBus.getDefault().register(MainActivity.this);
public class WorkEvent {
private int num;
public WorkEvent(int num) {
this.num = num;
}
public int getNum() {
return num;
}
}
@Subscribe(priority = 1)
public void onEvent(final WorkEvent event) {
Log.e(TAG, "onEvent: " + " Thread, WorkEvent num=" + event.getNum());
}
XEventBus.getDefault().post(new WorkEvent(5))
若想使用apt方式代替注解,可在bus注册时这样注册:
AptMethodFinder aptMethodFinder = new AptMethodFinder();
XEventBus.builder().setMethodHandle(aptMethodFinder).build().register(this);
具体使用可参看demo源码;或者体验demo,请点击此处下载 demo.apk