呃,要跟上時代的步伐,因此來學習一下EventBus(話說好像如今學也已經算是跟不上了。。嘛。。無論了,一步一步往前追,應該還來得及吧)。java
轉載請註明出處:http://blog.csdn.net/wingichoy/article/details/50625105git
看了網上一些的關於eventBus的文章,上來就嘰裏呱啦一大堆總結啊,概述啊。。上個原理圖啊什麼的。。 這樣寫雖然好,可是總會給一些初學者打一些退堂鼓。看到那麼複雜就不想看下去了。。 因此在本身學習的過程當中,想寫一些直觀的,精簡的,適合初學者的博客。github
額。。由於筆者也是剛剛接觸,因此暫時咱們認爲他是用來傳遞消息的東東(相似於handler啊 intent啊等等)。這樣也比較好理解。 暫時撇開觀察者模式不說,直接來看他的用法。markdown
1.在gradle裏面,加入以下代碼,這樣便可在項目中使用EventBuside
dependencies { compile 'de.greenrobot:eventbus:2.4.0' }
EventBus.getDefault().register(this);
@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的經常使用函數 你們若是喜歡個人博客,記得關注我哦。