android EventBus的使用

来源:互联网 发布:温长卿 知乎 编辑:程序博客网 时间:2024/05/16 13:05

因为最近博主项目中需要用到类到类之间数据的传递, 很久没用eventbus了,都快遗忘了,今天就简单整理下用法


第一步:导包   compile 'org.greenrobot:eventbus:3.0.0'  可以在buile中直接添加,也可以去搜索导包,这里就不贴图了

第二步:   自定义一个消息对象类   MyEventMsg 用来声明所要传递的对象

public class MyEventMsg {
    public String newsGuidText;
    public String musicGuidText;
    public String vedioGuidText;


    public String getNewsGuidText() {
        return newsGuidText;
    }


    public void setNewsGuidText(String newsGuidText) {
        this.newsGuidText = newsGuidText;
    }


    public String getMusicGuidText() {
        return musicGuidText;
    }


    public String getVedioGuidText() {
        return vedioGuidText;
    }


    public void setVedioGuidText(String vedioGuidText) {
        this.vedioGuidText = vedioGuidText;
    }


    public void setMusicGuidText(String musicGuidText) {
        this.musicGuidText = musicGuidText;
    }


}


第三步: 实例化 MyEventMsg   ,然后post数据

MyEventMsg msg = new MyEventMsg();
msg.setVedioGuidText(str);
 EventBus.getDefault().post(msg);


第四步:

在所需要接收数据的类的onCreate()方法中注册EventBus      EventBus.getDefault().register(this);

并且在onDestroy()方法中销毁         EventBus.getDefault().unregister(this);


并且在接收类中得到数据


 @Subscribe(threadMode = ThreadMode.MAIN)
    public void onMsgReceiver(MyEventMsg msg) {
        //默认代表改方法在发送的线程中 ThreadMode.MAIN代表改方法运行于UI主线程
        if (msg == null) {
            speakText = "请问您要听第几首歌?";
            SpeechApp.speechHelper.startSpeak(speakText, true, true);
            speakText = "";
        } else {
            Log.i("hhh", "-------MusicGuidText---------->" + msg.getMusicGuidText());
            getGuidSoundText(msg.getMusicGuidText());
        }


    }



到这里EventBus的基本用法就可以实现了。

0 0
原创粉丝点击