【Android】EventBus简单使用

EventBus简介

优势:

1.简化了组件间的通讯。
2.分离了事件的发送者和接受者。
3.在Activity、Fragment和线程中表现良好。
4.避免了复杂的和易错的依赖关系和生命周期问题。
5.使得代码更简洁,性能更好。

原理图

【Android】EventBus简单使用_第1张图片

简单使用
//首先需要引入依赖
implementation 'org.greenrobot:eventbus:3.3.1'
1.创建bean类
public class EventPhone {

    private final int callSate;

    public EventPhone(int callSate) {
        this.callSate = callSate;
    }

    public int getCallState() {
        return callSate;
    }

}
2.在发送者中进行发送数据
//这里发送事件是一个int值 0
EventBus.getDefault().post(new EventPhone(0);
3.在接收者中注册和接收
//一般在 onCreate 中注册事件
EventBus.getDefault().register(this);
//接收事件和处理事件
//这个 @Subscribe 和里面的东西不可少,这里表示主线程,粘性事件
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
//这个方法的命名 onCallEvent 是随便写的,可以写成任何名字
public void onCallEvent(EventPhone eventPhone) {
//当收到的数据是 int 值 0的时候,代表是我们需要的,然后进行处理
    if (eventPhone.getCallState() == 0) {
       //TODO
    }
}
4.销毁
//当不用的时候需要销毁,避免内存泄漏
EventBus.getDefault().unregister(this);
注意
Fragment中使用EventBus时,在注册和销毁时,填的都是【this//在 onCreateView 注册
EventBus.getDefault().register(this);
//在 onDestroyView 销毁
EventBus.getDefault().unregister(this);

不可以填
requireActivity()
getActivity()
等获取Fragment宿主activity的操作

你可能感兴趣的:(Android学习笔记,android,java,开发语言)