一,引入依赖:
implementation 'org.greenrobot:eventbus:3.0.0'

二,创建一个bean用来封装要传递的数据

三, 发送消息
在需要发送消息的地方将消息内容传入EventBus,我这里的musicColor,musicLoudness以及musicHeight是三个参数也就是我要发送的消息内容,然后把三个参数传给消息实体类MessageEvent.
EventBus.getDefault().post(new MessageEvent(musicColor,musicLoudness,musicHeight));

四,接收消息:
在要接收消息类的onCreate方法的setContent下注册EventBus
EventBus.getDefault().register(this);

五,在接收消息的Activity的onDestory方法下解除注册
@Override
protected void onDestroy() {
super.onDestroy();
if (EventBus.getDefault().isRegistered(this)){
EventBus.getDefault().unregister(this);
}
}

六,接收消息:我这里是的messageEvent.getMusicColor()就是上一个Activity传过来的消息数据.
@Subscribe(threadMode = ThreadMode.MAIN)
public void Event(MessageEvent messageEvent){
if (messageEvent.getMusicColor()!=0&&messageEvent.getMusicLoudness()!=0&&messageEvent.getMusicHeight()!=0){
if (iv_diy.getVisibility()!=View.VISIBLE){
iv_diy.setVisibility(View.VISIBLE);
}
iv_music_color.setVisibility(View.INVISIBLE);
iv_loudness.setVisibility(View.INVISIBLE);
iv_music_height.setVisibility(View.INVISIBLE);
}
}

网友评论