EventBus
2020-05-27 本文已影响0人
夜沐下的星雨
EventBus:事件总线
用处:跨模块,跨线程通信 可以替代holder
三(4)要素:
Event事件
subscriber 事件订阅者 (接收事件)
publisher 事件发布者 (产生事件)
关联
添加依赖
自定义一个事件类:相当于一个bean 传输数据的类型。name以Event结尾
事件是一个事件一个bean
——————————————————————————
this---代表本类
a普通事件(有注册就有解除)
注册事件:在Activity中注册EventBus.getDefault().register(this);
发送事件:EventBus.getDefault().post(this);
处理事件:注解:@subscribe(thteadMode=ThreadMode.MAIN)**重点:发送是什么线程,接受就是什么线程
解除注册:在onDestroy中解除注册:EventBus.getDefault().unregister(this);
——————————————————————————
b粘性事件
可以先发送事件后注册 列如:Sticky Broadcast粘性广播
使用:
粘性事件发布:EventBus.getDefault().postStickyt(this);
注册粘性事件:在新的页面中注册EventBus.getDefault().register(this);
立马处理粘性事件 :注解:@subscribe(thteadMode=ThreadMode.MAIN,Sticky=true)
解除注册:在onDestroy中解除注册:EventBus.getDefault().unregister(this);