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)//重新开线程接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容