EventBus使用初体验

EventBus是什么

Android组件间通信。Handler和广播也可以通信,但是Eventbus更加简便

导入包

implementation 'org.greenrobot:eventbus:3.2.0'

使用

1. 声明消息传递结构体,不同业务应该用不同的结构体,最好写个基类管理

public static class MessageEvent {}

2. 声明订阅者,也就是消息接收者需要写这个方法

@Subscribe(threadMode = ThreadMode.MAIN)  
public void onMessageEvent(MessageEvent event) {};

3. 注册和回收订阅者,这里注意要判断是否已注册,不然会报错

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if(!EventBus.getDefault().isRegistered(this)){//加上判断
        EventBus.getDefault().register(this);
    }
}
@Override
protected void onDestroy() {
    if (EventBus.getDefault().isRegistered(this))//加上判断
        EventBus.getDefault().unregister(this);
    super.onDestroy();
}

4. 在任意地方发送消息

EventBus.getDefault().post(new MessageEvent());

 

posted @ 2020-07-07 21:43  夜空中最亮的盖子  阅读(161)  评论(0)    收藏  举报