EventBus 最簡易的使用方式

呃,要跟上時代的步伐,因此來學習一下EventBus(話說好像如今學也已經算是跟不上了。。嘛。。無論了,一步一步往前追,應該還來得及吧)。java

轉載請註明出處:http://blog.csdn.net/wingichoy/article/details/50625105git

看了網上一些的關於eventBus的文章,上來就嘰裏呱啦一大堆總結啊,概述啊。。上個原理圖啊什麼的。。 這樣寫雖然好,可是總會給一些初學者打一些退堂鼓。看到那麼複雜就不想看下去了。。 因此在本身學習的過程當中,想寫一些直觀的,精簡的,適合初學者的博客。github

如今開始吧

關於EventBus是什麼

額。。由於筆者也是剛剛接觸,因此暫時咱們認爲他是用來傳遞消息的東東(相似於handler啊 intent啊等等)。這樣也比較好理解。 暫時撇開觀察者模式不說,直接來看他的用法。markdown

首先將EventBus整合到咱們本身的項目中

1.在gradle裏面,加入以下代碼,這樣便可在項目中使用EventBuside

dependencies { compile 'de.greenrobot:eventbus:2.4.0' }

如何使用

  1. 在MainActivity的onCreate()週期註冊EventBus。
EventBus.getDefault().register(this);
  1. 在onDestroy()註銷EventBus。
@Override
    protected void onDestroy() {
        super.onDestroy();
        EventBus.getDefault().unregister(this);
    }

這樣便完成了一個EventBus的註冊。如今,給Activity安上一個按鈕,用這個按鈕來發送消息,彈出一個Toast。函數

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mButton = (Button) findViewById(R.id.btn);
        mButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                EventBus.getDefault().post("hello eventBus");
            }
        });
        EventBus.getDefault().register(this);
    }

此時,點擊button,將會經過EventBus發送一條消息。而後來寫一個onEventMainThread函數,去處理這個消息的接收。這個函數表明若是接收到消息,則運行在UI線程。裏面去彈出一條Toast,爲剛纔發送的消息。post

public void onEventMainThread(String str) {
        Toast.makeText(MainActivity.this, str, Toast.LENGTH_SHORT).show();
    }

此時,點擊按鈕,效果以下:
這裏寫圖片描述學習

具體的流程是: 按鈕觸發監聽事件—->EventBus發送消息—->EventBus接收消息—->處理接收到的消息gradle

這樣應該你們能夠很直觀的瞭解了EventBus的做用,這也算是第一課時的筆記吧~this

下一篇: EventBus的經常使用函數 你們若是喜歡個人博客,記得關注我哦。

相關文章
相關標籤/搜索