原博客地址:https://blog.csdn.net/weixin_40400031/article/details/103190488
引言:EventBus是一款强大的轻量型事件处理框架,但是EventBus强制使用自定义类类型来作为接受参数,并且不能定向发送event的缺点实在让人不满。所以这款EventBox框架是我在参考了EventBus源码后,新写的一个更实用的事件处理框架,能够实现定向发送以及常见类接收:比如String、Integer、Double…等。保留了EventBus的粘性事件特性,但是剔除了线程切换相关。
allprojects {
repositories {
...
maven { url 'https://jitpack.io' } //添加jitpack仓库
}
}
dependencies {
implementation 'com.github.bigdongdong:EventBox:2.5' //添加依赖
}
1.在Activity或Fragment中注册和注销EventBox
@Override
public void onStart() {
super.onStart();
EventBox.getDefault().register(this);
}
@Override
public void onDestroy() {
super.onDestroy();
EventBox.getDefault().unregister(this);
}
2.添加event的订阅方法
通过@Subscribe来注解方法,使该方法能被EventBox检测到,添加进subscription池
@EventBoxSubscribe
public void acceptData(String s){
//do something ...
}
3.在需要的地方发送event,并指明接受者
EventBox.getDefault().send("爱你一万年", MainActivity.class);
EventBox.getDefault().send("爱你们一万年", FirstActivity.class
,SecondActivity.class,ThirdActivity.class...);