地址:
https://github.com/greenrobot/EventBus
原理图:
注册观察者
定义事件处理函数
发布者通知事件
观察者接受事件
反注册观察者
compile 'org.greenrobot:eventbus:3.0.0'
EventBus创建方式
//注册观察者
EventBus.getDefault().register(this);
//反注册
EventBus.getDefault().unregister(this);
//发布事件
EventBus.getDefault().postSticky(new Event4());
//接受事件
//设置在当前线程发布和接受,优先级,默认值为0,值越大,优先级越高,仅对相同线程的观察者起作用,以及是否是粘性的
@Subscribe(threadMode = ThreadMode.POSTING,priority = 1,sticky = true)
public void onEvent(Event0 event0) {
makeToast("event0, ThreadMode.POSTING");
}
//主线程接受
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEvent(Event1 event1) {
makeToast("event1, ThreadMode.MAIN");
}
//后台线程接受
@Subscribe(threadMode = ThreadMode.BACKGROUND)
public void onEvent(Event2 event2) {
makeToast("event2, ThreadMode.BACKGROUND");
}
//新建线程接受
@Subscribe(threadMode = ThreadMode.ASYNC)
public void onEvent(Event3 event3) {
makeToast("event3, ThreadMode.ASYNC");
}