EventBus3.0的使用

使用:

网址:https://github.com/greenrobot/EventBus

依赖:compile'org.greenrobot:eventbus:3.0.0'


1.普通使用

订阅:

①创建消息类

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;

}

}

②注册

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

EventBus.getDefault().register(this);//注册

}

③注销

@Override

protected void onDestroy() {

super.onDestroy();

EventBus.getDefault().unregister(this); //注销

}

④获取事件

@Subscribe(threadMode = ThreadMode.MAIN)

public voidonShowMessage(MessageEvent messageEvent){//自己写方法名//开始定义的类

mTextView.setText(messageEvent.getMessage());

}

发布:

EventBus.getDefault().post(new MessageEvent("发送过来了"));//发布类中发布

2.粘性事件

获得已经发布过得粘性消息,但是只能获得最近的一次

订阅;

①注册粘性事件

mButton.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

EventBus.getDefault().register(this);

}

});

②注销粘性事件

③设置获取粘性事件方法

@Subscribe(sticky = true, threadMode = ThreadMode.MAIN)//设置粘性事件为true

public void StickEvent(MessageEvent messageEvent){

mTextView.setText(messageEvent.getMessage());

}

发布:

EventBus.getDefault().postSticky(new MessageEvent("发送粘性事件"));//发送粘性事件

3.四种线程

@Subscribe(threadMode = ThreadMode.POSTING)     //哪个线程发,哪个线程接

@Subscribe(threadMode = ThreadMode.MAIN)       //主线程接

@Subscribe(threadMode = ThreadMode.BACKGROUND)         //子线程接

@Subscribe(threadMode = ThreadMode.ASYNC)//重新开线程接

你可能感兴趣的:(EventBus3.0的使用)