EventBus:類似于發(fā)布者訂閱者模式稽煤。
EventBus的三要素:事件荤堪、事件訂閱者谜喊、事件發(fā)布者。
事件通常是一個(gè)JavaBean
事件訂閱就是接收到時(shí)間之后的處理方法朋其。
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.注冊(cè)
EventBus.getDefault().register(MainActivity.this);
3.發(fā)布:
eventBus.post(new MessageEvent("這是一個(gè)重要的通知"));
4.訂閱:
//訂閱事件
//后面用來(lái)指示線程模式王浴,表示觸發(fā)之后是在主線程中進(jìn)行
@Subscribe(threadMode= ThreadMode.MAIN)
public void onMessageEvent(MessageEvent messageEvent){
//當(dāng)發(fā)生事件之后所做的操作
tv.setText(messageEvent.getMessage());
}
注:普通的事件,必須要注冊(cè)之后才能夠收到發(fā)布的事件令宿,在注冊(cè)之前發(fā)布的事件都訂閱不到
黏性事件
黏性事件的注冊(cè)和發(fā)布的順序不固定叼耙,可以先發(fā)布再注冊(cè),也能夠收到注冊(cè)之前發(fā)布的事件粒没∩竿瘢可以用來(lái)做預(yù)處理。
黏性事件