0
点赞
收藏
分享

微信扫一扫

集成EventBus

c一段旅程c 2022-02-27 阅读 74


背景:

安卓各模块见经常需要发送消息,以前多采用广播,但是后来有了更优的解决方案:EventBus,传输消息非常方便。下文介绍一下如何集成EventBus。

集成步骤:

1.build.gradle中增加依赖:

​implementation 'org.greenrobot:eventbus:3.1.1'​

2.注册接收器(Activity的onCreate方法中写)

​EventBus.getDefault().register(this);​

3.发送事件:

​EventBus.getDefault().post( "发射了一个事件");​

4.接收事件(在Activity或Fragment中写)

/**
* 自定义一个方法 接收事件,方法名字可以随便写。
* 发送的数据类型可以自行定义,一般项目中为了区分不同的消息,会定义一个基类,
* 然后派生出不同的事件子类。可以参考SecondActivity.java
*/
@Subscribe(threadMode = ThreadMode.MAIN)
fun onEvent(event: String) {
Toast.makeText(this, event, Toast.LENGTH_SHORT).show()
}

5.取消注册

override fun onDestroy() {
super.onDestroy()
//取消注册 , 防止Activity内存泄漏
EventBus.getDefault().unregister(this)
}

Demo源代码(含自定义事件类型):

https://gitee.com/cxyzy1/eventBusDemo/


举报

相关推荐

0 条评论