Android事件匯流排分發庫的使用

2021-07-17 04:50:33 字數 1705 閱讀 1859

一 事件匯流排分發庫eventbus和otto的簡介及對比

1.什麼是事件匯流排管理:

2. event bus是乙個發布 / 訂閱的事件匯流排。event bus模式 — 也被稱為message bus或者發布者/訂閱者(publisher/subscriber)模式 — 可以讓兩個元件相互通訊,但是他們之間並不相互知曉。基於事件匯流排管理/訂閱/分發模式的。事件響應有更多的執行緒選擇,eventbus可以向不同的執行緒中發布事件。eventbus支援 sticky event。使用時需要先註冊訂閱,然後向訂閱者分發訊息資料即可。包含4個成分:發布者,訂閱者,事件,匯流排。訂閱者可以訂閱多個事件,傳送者可以發布任何事件,發布者同時也可以是訂閱者。分訂閱、註冊、發布、取消註冊等步驟。

二 event bus的基本用法

1.訂閱、註冊、發布、取消註冊。

註冊: 

eventbus.getdefault().register(this);  

eventbus.getdefault().register(new myclass());  

//註冊:三個引數分別是,訊息訂閱者(接收者),接收方法名,事件類  

eventbus.getdefault().register(this,"settexta",settextaevent.class); 

取消註冊: 

eventbus.getdefault().unregister(this);  

eventbus.getdefault().unregister(new myclass());  

訂閱處理資料: 

public void oneventmainthread{}

public void onevent(anyeventtype event) {}

oneventpostthread、oneventbackgroundthread、oneventasync

發布: 

eventbus.getdefault().poststicky(new secondactivityevent("message from secondactivity"));  

eventbus.getdefault().post(new changeimgevent(1));  

三 eventbus的實際專案應用案例

import android.os.bundle;

import android.view.view;

import android.view.view.onclicklistener;

import android.widget.button;

import android.widget.textview;

import de.greenrobot.event.eventbus;

/** * eventbus的實際專案案例演示

* * @author administrator

* */

public class mainactivity extends activity

});eventbus.getdefault().register(this);

} public void onevent(myevent event)

} public void oneventmainthread(myevent event)

} @override

protected void ondestroy()

}

Android 事件分發

touch 事件的分發和消費機制dispatchtouchevent onintercepttouchevent 和ontouchevent dispatchtouchevent 事件分發 true 事件會分發給當前view 並由dispatchtouchevent 方法消費,同時停止向下傳 fal...

Android事件分發

android 中與 touch 事件相關的方法包括 dispatchtouchevent motionevent ev onintercepttouchevent motionevent ev ontouchevent motionevent ev 能夠響應這些方法的控制項包括 viewgroup...

Android事件分發

當使用者觸控螢幕時,系統會對觸控事件做出相應的相應,這個事件會產生乙個motionevent,系統根據一定的規則將其傳遞給view進行處理,這個過程就是事件分發機制了。事件的傳遞分為兩個階段,即捕獲階段和冒泡階段。捕獲階段 事件最先由最外層的view接收,然後依次向內層傳遞,直到傳遞到最小的view...