EventBus简单6步

2020-06-12  本文已影响0人  加油小李

一,引入依赖:

  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);

注册EventBus

五,在接收消息的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);

    }

}

上一篇 下一篇

猜你喜欢

热点阅读