1.简介
EventBus is a publish/subscribe event bus for Android and Java.
eventbus 是用于android和java 发布和订阅的事件总线。
优点:
简化组件之间的通信
体积小
将事件的发送者和接受者分离
在activity fragment 线程之间性能优良
避免复杂且容易出错的依赖关系和生命周期问题
代码简单方便
EventBus-Publish-Subscribe.png
2.依赖
implementation 'org.greenrobot:eventbus:3.1.1'
3.定义事件
public static class MessageEvent { /* Additional fields if needed */ }
4.(声明和注解事件接收方法)Declare and annotate your subscribing method,注意方法的名称和event名称要对应。MessageEvent-->onMessageEvent()
@Subscribe(threadMode = ThreadMode.MAIN) public void onMessageEvent(MessageEvent event) {/* Do something */};
5.注册和取消注册
@Override public void onStart() { super.onStart(); EventBus.getDefault().register(this); } @Override public void onStop() { super.onStop(); EventBus.getDefault().unregister(this); }
6.发送事件
EventBus.getDefault().post(new MessageEvent()); EventBus.getDefault().post(new MessageEvent(“要传送的内容”));
7.粘性事件(Sticky Events):就是在发送事件之后再订阅该事件也能收到该事件
EventBus.getDefault().postSticky(new MessageEvent("Hello everyone!"));
@Subscribe(sticky = true, threadMode = ThreadMode.MAIN)// sticky =true,可以接收粘性事件。public void onEvent(MessageEvent event) { textField.setText(event.message); }
作者:我就是泰山
链接:https://www.jianshu.com/p/801d2062e809
點擊查看更多內容
為 TA 點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優質文章
正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦