Demo_EventBus Android组件通信示例
Android 项目里的组件通信,用EventBus确实挺省事的。Demo_EventBus
就是个用来练手的示例项目,核心就是演示发布/订阅怎么用,逻辑简单,结构清晰,适合你快速上手。它能让 Activity、Fragment、Service 这些角色之间说话变得不再绕,没一堆乱七八糟的接口回调,代码也干净不少。
项目里一般这么搞:先引包,在build.gradle
里加上依赖就行。你可以自己定义事件类,就是个普通的 Java 类,用来装数据。要发事件的时候,直接一句EventBus.getDefault().post(event)
就完事儿,响应也快。
接收事件的地方,比如Activity
或者Fragment
,用@Subscribe
注解就能监听到消息,配合threadMode
还能控制线程环境,比如 UI 线程或者后台线程,灵活。如果你之前发过事件但后来才注册监听的组件,还可以用粘性事件,那段代码写起来也简单,@Subscribe(sticky = true)
就行。
项目里还顺手展示了事件优先级和异常,比如不同的监听方法可以按优先级先后触发,有冲突的场景就实用。出了问题也不用怕,EventBus 能自动抓异常,你也能自定义自己的错误器,方便定位 Bug。
还有一个小细节挺实用:调试模式。加一句EventBus.builder().logNoSubscriberMessages(true).debug()
,就能看到哪些事件没人接,排查起来省心多了。整体看下来,Demo_EventBus
这个小项目虽然简单,但常用的用法都囊括了,照着写基本不会出错。
如果你刚接触 EventBus,或者想在项目里引入事件总线通信,直接扒这个项目看看怎么组织代码、怎么注册事件,效率会高不少。顺便一提,EventBus 也有不少坑,比如别忘了解注册,不然容易内存泄漏。
评论区