EventBus是一款針對Android優化的發布/訂閱事件總線。主要功能是替Intent,Handler,BroadCast在Fragment,Activity,Service,線程之間傳遞消息.優點是開銷小,代碼更優雅。以及將發送者和接收者解耦。
這部分使用起來相對簡單
1、eventbus.jar第三方架包
這個包不大,23K下面是連接地址
http://download.csdn.net/download/androidstarjack/8958389
2、注冊(接收)
這里需要說明,需要接收數據的地方才注冊,否則不需要
即誰接收誰注冊原則
EventBus.getDefault().register(this);
//這個是接收發送的數據
//我們暫且使用onEventMainThread接口來接收
public void onEventMainThread(Object obj) { Log.v("result", "ThirdActivity: " + obj.toString()); }
3、發送
EventBus.getDefault().post(object)
post里面是一個object超類,可以是自己定義的一個對象
4、注銷
不用的時候別忘了注銷掉(否則仍會接收,這一點和廣播類似)
@Override protected void onDestroy(){ super.onDestroy(); EventBus.getDefault().unregister(this); }
onEventXXXX onEvent函數一共有四種,前面的例子只用到一個onEvent。
函數名 含義
ThreadMode onEvent 事件處理在事件發送的那個線程執行
PostThread onEventMainThread 事件在主線程-UI線程執行
MainThread onEventBackgroundThread 事件在一個后臺線程執行(就一個后臺線程) BackgroundThread onEventAsync 事件會單獨啟動一個線程執行(每個事件都會啟動一個線程) Async 其中前三個事件處理方式,都應該盡快完成。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。