使用eventbus的步骤:
1.定义event
可以是任意Object,用于区分事件类型和传输数据
public class AnyEventType{
public object anyData;
}
2.订阅者注册与注销
注册:EventBus.getDefault().register(this);//this是订阅者对象
处理:
public void onEvent(Object o){}
public void onEventMainThread(Object o){}
public void onEventMainThread(Object o){}
public void onEventMainThread(Object o){}
注销:EventBus.getDefault().unregister(this);//this是订阅者对象
3.发布者发布事件:
发布event:EventBus.getDefault().post(event);
发布粘性事件:EventBus.getDefault().postSticky(event);
默认的post事件的分发完毕会被从内存中删除。postSticky可以将event另外保存到一个map中put(event.getclass(),event);
通过EventBus.getDefault().getSticky(Class<?> eventType)拿到最后一次发布的Event;使用这种方法能够直接在oncreate()方法中写,就不需要在调用onEvent方法了。