在维护一些项目的时候,我们可能会遇到使用
EventBus
做Android事件总线优化
。这篇博客分享一下EventBus
的知识,希望对看文章的小伙伴有所帮助。
EventBus的引入
implementation("org.greenrobot:eventbus:3.3.1")
我发文的时候,最新的版本是3.3.1
。如果看文章过来很久了,你可以去EventBus开源库查看最近版本。
使用示例
1、定义一个Event
事件:
public static class MessageEvent { /* Additional fields if needed */ }
2、注册和注销EventBus
,一定要注销,否则内存泄漏:
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
开源作者推荐写在onStart()
、onStop()
生命周期里面,维护的时候,可能会在onCreate()
、onDestroy()
里面。
3、订阅事件的处理:
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(MessageEvent event) {
// Do something
}
4、发送订阅事件:
EventBus.getDefault().post(new MessageEvent());
以上就是对EventBus
的简单使用,除了Activity
,它还可以在Fragment
、Service
里面使用。
网友评论