EventBus是个什么东西?有什么用?
EventBus是一个发布 / 订阅的事件总线。简单点说,就是两人约定好怎么通信,一人发布消息,另外一个约定好的人立马接收到你发的消息。
用处:相信大家都用过Handle了进行线程通信,回调方法进行通信,是不是觉得特麻烦。EventBus就可以帮减少很多事,不管你在任何地方任何位置发布一个事件,接收者都能立马接收到你的消息,不用你考虑android子线程操作UI线程的问题!!!!而且还有个好处,就这这个框架很容易上手!!!
项目地址:https://github.com/greenrobot/EventBus
EventBus 在Actvity 中的应用 方式
BaseActivity 创建是注册 还有关闭时销毁事件
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EventBus.getDefault().register(this);
}
// 关闭销毁事件
@Override
protected void onDestroy() {
// 结束Activity&从堆栈中移除
EventBus.getDefault().unregister(this);
super.onDestroy();
}
BaseFragment 中也是一样
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
EventBus.getDefault().register(this);
return mRootView;
}
@Override
public void onDestroyView() {
EventBus.getDefault().unregister(this);
super.onDestroyView();
}
发消息的方式为统一调用
public static void postEvent(Object event) {
EventBus eventBus = EventBus.getDefault();
eventBus.post(event);
}