EventBus3.0的使用

使用:

網(wǎng)址:https://github.com/greenrobot/EventBus

依賴:compile'org.greenrobot:eventbus:3.0.0'


1.普通使用

訂閱:

①創(chuàng)建消息類

public class MessageEvent {

private String message;

public MessageEvent(String message) {

this.message = message;

}

public String getMessage() {

return message;

}

public void setMessage(String message) {

this.message = message;

}

}

②注冊

@Override

protected?void?onCreate(Bundle?savedInstanceState)?{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

EventBus.getDefault().register(this);//注冊

}

③注銷

@Override

protected?void?onDestroy()?{

super.onDestroy();

EventBus.getDefault().unregister(this); //注銷

}

④獲取事件

@Subscribe(threadMode?=?ThreadMode.MAIN)

public?voidonShowMessage(MessageEvent?messageEvent){//自己寫方法名//開始定義的類

mTextView.setText(messageEvent.getMessage());

}

發(fā)布:

EventBus.getDefault().post(new MessageEvent("發(fā)送過來了"));//發(fā)布類中發(fā)布

2.粘性事件

獲得已經(jīng)發(fā)布過得粘性消息,但是只能獲得最近的一次

訂閱;

①注冊粘性事件

mButton.setOnClickListener(new?View.OnClickListener()?{

@Override

public?void?onClick(View?v)?{

EventBus.getDefault().register(this);

}

});

②注銷粘性事件

③設置獲取粘性事件方法

@Subscribe(sticky = true, threadMode = ThreadMode.MAIN)//設置粘性事件為true

public void StickEvent(MessageEvent messageEvent){

mTextView.setText(messageEvent.getMessage());

}

發(fā)布:

EventBus.getDefault().postSticky(new?MessageEvent("發(fā)送粘性事件"));//發(fā)送粘性事件

3.四種線程

@Subscribe(threadMode?=?ThreadMode.POSTING) ? ? //哪個線程發(fā),哪個線程接

@Subscribe(threadMode?=?ThreadMode.MAIN) ? ? ? //主線程接

@Subscribe(threadMode?=?ThreadMode.BACKGROUND)? ? ? ? ?//子線程接

@Subscribe(threadMode?=?ThreadMode.ASYNC)//重新開線程接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 前言:EventBus出來已經(jīng)有一段時間了,github上面也有很多開源項目中使用了EventBus。所以抽空學習...
    Kerry202閱讀 1,370評論 1 2
  • EventBus 是一個Android端優(yōu)化的 publish/subscribe 消息總線,簡化了應用程序各個組...
    王世軍Steven閱讀 1,948評論 4 21
  • 原文鏈接:http://blog.csdn.net/u012810020/article/details/7005...
    tinyjoy閱讀 657評論 1 5
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • 一、簡介 EventBus是由greenrobot 組織貢獻的一個Android事件發(fā)布/訂閱輕量級框架。Even...
    Mr丶sorrow閱讀 15,396評論 0 13

友情鏈接更多精彩內(nèi)容