亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

EventBus 入門和粘性事件(Sticky Events)

標簽:
Android

1.简介

EventBus is a publish/subscribe event bus for Android and Java.
eventbus 是用于android和java 发布和订阅的事件总线。

优点:

  • 简化组件之间的通信

  • 体积小

  • 将事件的发送者和接受者分离

  • 在activity fragment 线程之间性能优良

  • 避免复杂且容易出错的依赖关系和生命周期问题

  • 代码简单方便

https://img1.sycdn.imooc.com//5d32a67b0001a98214390548.jpg

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 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消