首先需要一个实体类 MessageEvent:
private Object message;
public MessageEvent(Object message) {
this.message = message;
}
public String getMessage() {
return message;
}
public void setMessage(Object message) {
this.message = message; }
下面接在需要接收事件的地方:
EventBus.getDefault().register(this);//注册EventBus
@Subscribe(threadMode = ThreadMode.MAIN) //必须写
public void onEventMainThread(MessageEvent event){
//event.getMessage() 为接收到传来的消息;下面写接收到需要处理的事件
Toast.makeText(getActivity(), event.getMessage(), Toast.LENGTH_LONG).show(); }
下面是发送事件的地方( 粘性事件是发送事件之后再注册事件也可以接收到事件;另一个是未注册便接收不到事件了):
EventBus.getDefault().post(new MessageEvent("事件")); //发送事件
EventBus.getDefault().postSticky(new MessageEvent("粘性事件")); //发送粘性事件
// 下面是示例
tv_EventBus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EventBus.getDefault().postSticky(new MessageEvent("事件"));//发送粘性事件
finish();
} });