EventBus:类似于发布者订阅者模式。
EventBus的三要素:事件、事件订阅者、事件发布者。
事件通常是一个JavaBean
事件订阅就是接收到时间之后的处理方法。
1.定义事件类:
//定义事件类的Javabean
public class MessageEvent {
private String message;
public MessageEvent(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
2.注册
EventBus.getDefault().register(MainActivity.this);
3.发布:
eventBus.post(new MessageEvent("这是一个重要的通知"));
4.订阅:
//订阅事件
//后面用来指示线程模式,表示触发之后是在主线程中进行
@Subscribe(threadMode= ThreadMode.MAIN)
public void onMessageEvent(MessageEvent messageEvent){
//当发生事件之后所做的操作
tv.setText(messageEvent.getMessage());
}
注:普通的事件,必须要注册之后才能够收到发布的事件,在注册之前发布的事件都订阅不到
黏性事件
黏性事件的注册和发布的顺序不固定,可以先发布再注册,也能够收到注册之前发布的事件。可以用来做预处理。