2017 10 27
EventBus 是個(gè)什么鬼?
首先有兩個(gè)概念發(fā)布者/訂閱者
發(fā)布者就是 發(fā)送事件
訂閱者 就是接收事件
gradle
compile 'org.greenrobot:eventbus:3.0.0'
1.定義事件
public static class MessageEvent { /* Additional fields if needed */ }
// 定義事件 這個(gè)就是你要傳送的數(shù)據(jù)實(shí)體類
2.準(zhǔn)備訂閱者
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(MessageEvent event) {/* Do something */};
// 訂閱者 接受數(shù)據(jù)的方法 threadMode 是運(yùn)行在什么線程模式
http://greenrobot.org/eventbus/documentation/delivery-threads-threadmode/
注冊(cè)和取消注冊(cè)訂閱者
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
3.發(fā)送事件
EventBus.getDefault().post(new MessageEvent());