线程间通讯的方式众多,handler,post等,这篇重点讲一个比较好使的三方控件eventbus,当然,在rxjava出来之后,eventbus,handler等线程间通讯工具也会逐渐被取代
- 依赖
compile 'de.greenrobot:eventbus:2.4.0'
- 注册,在需要接受消息的fragment或activity的oncreat()方法中注册
EventBus.getDefault().register(this);
注销,在ondestroy方法中
EventBus.getDefault().unregister(this);
同时,在该接受消息的方法中实现OnEventMainThread方法
/**
* 用来接收消息
*/
public void onEventMainThread(EventUtil event) {
System.out.println("接收到消息了====" + mExittext);
}
EventUtil是一个工具类,可以定义要传递的消息类型
public class EventUtil {
private String msg;
public EventUtil(){}
public EventUtil(String msg){
this.msg=msg;
}
public String getMsg(){
return this.msg;
}
}
消息发送
EventBus.getDefault().post(new EventUtil(keyword));