发送普通消息(他两的区别自行百度一下吧)
第一步添加依赖
implementation 'org.greenrobot:eventbus:3.1.1'
第二步注册发送普通消息或者粘性消息(这里是发送普通消息,可以发送对象或集合或字符)
EventBus.getDefault().post(stringList);
第三步在要接收的类里注册(最好在所在的生命周期里最先创建的里写)
if(!EventBus.getDefault().isRegistered(this)) {
EventBus.getDefault().register(this);
}
第四步在要接收的类里接收消息就行(手动写此方法,注解一定要加)
@Subscribe(threadMode = ThreadMode.MAIN)
public void getMessage(List<String> list) {
Log.d(TAG, "getMessage: " + list.get(2).toString());
}
最后在所在的生命周期的销毁方法里解除注册
@Override
public void onDestroyView() {
super.onDestroyView();
//解除注册
//注销(一般是在Activity或Fragment的onDestory中进行)
if (EventBus.getDefault().isRegistered(this)) {
EventBus.getDefault().unregister(this);
}
}
粘性消息发送
注册发送粘性消息(可以发送对象或集合或字符)
EventBus.getDefault().postSticky(stringList);
在要接收的类里注册(最好在所在的生命周期里最先创建的里写)
EventBus.getDefault().register(this);
在要接收的类里接收消息就行(注解一定要加)
@Subscribe(threadMode = ThreadMode.MAIN,sticky = true)
public void getMessage(List<String> list) {
Log.d(TAG, "getMessage: " + list.get(2).toString());
}
最后在所在的生命周期的销毁方法里解除注册
@Override
public void onDestroyView() {
super.onDestroyView();
//解除注册
EventBus.getDefault().unregister(this);
}
就可以传值了