《Android進階之光》--事件匯流排

來源:互聯網
上載者:User

標籤:build   建造者   事件調度   return   producer   text   produce   strong   register   

No1:

EventBus三要素:

1)Event:事件

2)Subscriber:事件訂閱者

3)Publisher:事件發行者

No2:

EventBus的4種ThreadMode(執行緒模式):

1)POSTING(預設):該事件是在哪個線程發布出來的,事件處理函數就會在哪個線程中運行

2)MAIN:事件的處理會在UI線程中執行

3)BACKGROUND:在新線程或者發布的子線程中執行,禁止進行UI更新操作

4)ASYNC:在建立的子線程中執行,禁止進行UI更新操作

No3:

EventBus源碼解析

EventBus.getDefault()->(單例模式)

new EventBus()->

EventBus(EventBusBuilder)->(建造者模式)

register->

SubscriberMethodFinder.findSubscriberMethods->findUsingInfo->getSubscriberInfo->findUsingReflectionInSingleClass->

subscribe->

...

No4:

otto使用

compile ‘com.squareup:otto:1.3.8‘
public class BusData{    public String message;    public BusData(String message){        this.message = message;    }    public String getMessage(){        return message;    }    public void setMessage(String message){        this.message = message;    }}
public class OttoBus extends Bus{    private volatile static OttoBus bus;    private OttoBus(){}    public static OttoBus getInstance(){        if(bus == null){            synchronized(OttoBus.class){                if(bus==null){                    bus = new OttoBus();                }            }        }        return bus;    }}
Bus bus = OttoBus.getInstance();bus.register(this);bus.unregister(this);@Subscribepublic void setContent(BusData data){    tv_message.setText(data.getMessage());}OttoBus.getInstance().post(new BusData("劉望舒的部落格更新了"));

 

No5:

Otto主要類的功能

1)Produce、Subscribe:發行者和訂閱者註解類

2)Bus:事件匯流排類,用來註冊和取消註冊,維護髮布-訂閱模型,並處理事件調度分發

3)HandlerFinder、AnnotatedHandlerFinder:用來尋找發行者和訂閱者

4)EventProducer、EventHandler:分別封裝發行者和訂閱者的資料結構

《Android進階之光》--事件匯流排

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.