subscriber 事件訂閱者。在eventbus3.0之前我們必須定義以onevent開頭的那幾個方法,分別是onevent、oneventmainthread、oneventbackgroundthread和oneventasync,而在3.0之後事件處理的方法名可以隨意取,不過需要加上註解@subscribe(),並且指定執行緒模型,預設是posting。
publisher 事件的發布者。我們可以在任意執行緒裡發布事件,一般情況下,使用eventbus.getdefault()就可以得到乙個eventbus物件,然後再呼叫post(object)方法即可。
四種執行緒模型
eventbus3.0有四種執行緒模型,分別是:
posting (預設) 表示事件處理函式的執行緒跟發布事件的執行緒在同乙個執行緒。
main 表示事件處理函式的執行緒在主線程(ui)執行緒,因此在這裡不能進行耗時操作。
background 表示事件處理函式的執行緒在後台執行緒,因此不能進行ui操作。如果發布事件的執行緒是主線程(ui執行緒),那麼事件處理函式將會開啟乙個後台執行緒,如果果發布事件的執行緒是在後台執行緒,那麼事件處理函式就使用該執行緒。
async 表示無論事件發布的執行緒是哪乙個,事件處理函式始終會新建乙個子執行緒執行,同樣不能進行ui操作。
04 eventbus的基本用法
Android EventBus使用與思路總結
好了,廢話一堆,下面開始簡要講解androideventbus的使用與原理。aci或frgm oncreate時eventbus.getdefault register this ondestory時eventbus.getdefault unregister this this做為乙個監聽者的角色...
Android EventBus實現方便的訊息傳遞
eventbus能夠簡化各元件間的通訊,讓我們的 書寫變得簡單,能有效的分離事件傳送方和接收方 也就是解耦的意思 能避免複雜和容易出錯的依賴性和生命週期問題。1.引入依賴 implementation org.greenrobot eventbus 3.1.1 2.新建乙個event類代表事件 其實...
android eventBus 的簡單使用(一)
compile org.greenrobot eventbus 3.0.0 然後寫乙個 實體類用於 儲存傳遞資料和狀態值 public class eventbuscarrier public void setobject2 object object2 private object object2...