EventBus是一個 發佈/訂閱 模式的消息總線庫,它簡化了應用程序內各組件間、組件與後臺線程間的通訊,解耦了事件的發送者和接收者,避免了複雜的、易於出錯的依賴及生命週期問題,可使咱們的代碼更加簡潔、健壯。EventBus 用於各組件通訊,那麼用於 fragment 之間的通訊就很是合適了。html
想必你們從一個Activity跳轉到第二個Activity的程序應該都會寫,這裏先稍稍把兩個Activity跳轉的代碼建起來。後面再添加EventBus相關的玩意。java
MainActivity佈局(activity_main.xml)
android
新建一個Activity,SecondActivity佈局(activity_second.xml)
app
MainActivity.java (點擊btn跳轉到第二個Activity)
框架
到這,基本框架就搭完了,下面開始按步驟使用EventBus了。
ide
在上面的GIF圖片的演示中,你們也能夠看到,咱們是要在MainActivity中接收發過來的消息的,因此咱們在MainActivity中註冊消息。函數
經過咱們會在OnCreate()函數中註冊EventBus,在OnDestroy()函數中反註冊。因此總體的註冊與反註冊的代碼以下:佈局
發送消息是使用EventBus中的Post方法來實現發送的,發送過去的是咱們新建的類的實例!
post
完整的SecondActivity.Java的代碼以下:this
接收消息時,咱們使用EventBus中最經常使用的onEventMainThread()函數來接收消息,具體爲何用這個,咱們下篇再講,這裏先給你們一個初步認識,要先能把EventBus用起來先。
在MainActivity中重寫onEventMainThread(FirstEvent event),參數就是咱們本身定義的類:
在收到Event實例後,咱們將其中攜帶的消息取出,一方面Toast出去,一方面傳到TextView中;