前言:许久不碰Android,昨天要添加个小功能,那陌生感,连布局都快不会写了。
想写个回调,嗯???回调怎么写来着?用EventBus可以很好处理这个问题,但是EventBus又是怎么用的?
明明记得都很简单,但是许久不用,是啥都忘了,复习了一下,赶紧记录一下。
作用:实现在Android各个组件之间传递消息。
1、定义一个事件消息类
public class EventMessage {
public static finally int EVENT_SETTING = 1;
public int eventType;
public EventMessage(int event) {
this.eventType = event;
}
}
2、在需要订阅事件的地方注册事件(只可注册一次,activity,fragment一般放onCreate中)
//MainFragment.java文件
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EventBus.getDefault().register(this);
}
3、取消消息订阅
//MainFragment.java文件
@Override
public void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}
4、接收数据
//MainFragment.java文件
@Subscribe(threadMode = ThreadMode.MAIN) //在ui线程执行
public void onXXXEvent(EventMessage event) {
switch (event.eventType) {
case EventMessage.EVENT_SETTING:
//刷新
adapter.notifyDataSetChanged();
break;
}
}
5、发送数据(想在哪发就在哪发)
//随便哪一个文件中
EventBus.getDefault().post(new EventMessage(EventMessage.EVENT_SETTING));
基本就这样用了,先暂时记录到这,有时间再回来补上。