EventBus

  • 添加依賴implementation 'org.greenrobot:eventbus:3.1.1'

1. 注冊(cè)

  • 注冊(cè)事件
@Override
protected void onCreate(Bundle savedInstanceState) {           
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
     EventBus.getDefault().register(this);
} 
  • 解除注冊(cè)
@Override
protected void onDestroy() {
    super.onDestroy();
    EventBus.getDefault().unregister(this);
}

2. 事件

  • 發(fā)送事件
EventBus.getDefault().post("發(fā)送事件");
  • 處理事件
//權(quán)限修飾符必須為public 
@Subscribe(threadMode = ThreadMode.MAIN)
public void XXX(MessageEvent messageEvent) {
    ...
}

3. 粘性事件

  • 粘性事件的發(fā)布:
EventBus.getDefault().postSticky("粘性事件");
  • 粘性事件的接收
//權(quán)限修飾符必須為public 
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
    public void receiveSoundRecongnizedmsg(String insType) {
       
    }

4. 總結(jié)

EventBus能夠簡(jiǎn)化各組件間的通信,讓我們的代碼書寫變得簡(jiǎn)單,能有效的分離事件發(fā)送方和接收方(也就是解耦的意思),能避免復(fù)雜和容易出錯(cuò)的依賴性和生命周期問題。

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

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