Android EventBus粘性事件使用指南
Android 里的事件通信,用 EventBus 真挺顺手的。是它的粘性事件功能,也就是postSticky
,在应用启动或跨组件传数据时管用。它比传统的BroadcastReceiver
要灵活多了,不用折腾太多模板代码,写起来轻松多了。
项目里加依赖也简单,直接在build.gradle
里加上:
implementation 'org.greenrobot:eventbus:3.x.x'
初始化嘛,通常在Application
里注册就好:
EventBus.getDefault().register(this);
发事件就一句话:
EventBus.getDefault().post(new MyEvent("Hello"));
订阅也好理解,只要方法上加个@Subscribe
,参数和你发的事件类一致就行。记得注册和反注册哈。
说到重点的postSticky,用法和普通事件差不多,只不过它会把事件“留着”,哪怕你后面才注册也能收到。像下面这样:
EventBus.getDefault().postSticky(new StickyEvent("页面初始化数据"));
订阅的时候加个@Sticky
就能接住这个粘性事件:
@Sticky
@Subscribe(threadMode = ThreadMode.MAIN)
public void onStickyEvent(StickyEvent event) {
// 响应粘性事件
}
粘性事件适合做启动页传参、界面还原这类场景。哦对了,用完别忘了清掉,不然事件会一直在那。
如果你在做组件化或者要一些延迟注册的事件逻辑,EventBus + postSticky真的蛮香的。
5.69MB
文件大小:
评论区