EventBus3.1.1封装使用

一、注解类BindEventBus.java
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface BindEventBus {
}

二、然后在Activity的基类跟Fragment的类中先判断当前子类是否绑定了BindEventBus注解,然后再决定是否进行注册跟反注册
注册:(在onCreate()方法中)
在BaseActivity.java注册EventBus:
//判断是否需要注册EventBus
if (this.getClass().isAnnotationPresent(BindEventBus.class)) {
if (!EventBus.getDefault().isRegistered(this)) {
EventBus.getDefault().register(this);
}
}
反注册:(在onDestroy()方法中)
if (this.getClass().isAnnotationPresent(BindEventBus.class)) {
EventBus.getDefault().unregister(this);
}

在Fragment中同理。

三、在需要使用EventBus的子类中只需加上BindEventBus的注解即可,剩下的使用过程跟正常使用EventBus一样,不需要使用EventBus的子类不用做任何处理

在子类Activity中使用:
@BindEventBus
public class LoginActivity extends BaseActivity {
}

在Fragment中同理。

四、默认绑定一个事件,防止源码里面去找方法的时候找不到报错。
@Subscribe
public void onEvent(BaseActivity activity) {
}

五、这里引入的是3.1.1版本,api 'org.greenrobot:eventbus:3.1.1'

六、在EventBus.getDefault().post();的类不需要去绑定只需要在接受方去绑定@BindEventBus就可以啦,开心去使用吧,哈哈。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容