AndroidEventBus基本使用

Android中的Activity, Fragment, Service之间的交互是比较麻烦的,可能我们第一想到的是使用广播接收器来在它们之间进行交互。
例如上述所说在Activity-B中发一个广播,在Activity-A中注册一个广播接收器来接受该广播。但使用广播接收器稍显麻烦,如果你
要将一个实体类当做数据在组件之间传递,那么该实体类还得实现序列化接口,这个成本实在有点高啊!

1.使用AndroidEventBus首先需要在onCreate中注册
   EventBus.getDefault().register(Object obj);
   同时需要在OnDestory中取消
   EventBus.getDefault().unregister(Object obj);
2.消息发送
  EventBus.getDefault().post(Object obj);
  EventBus.getDefault().post(Object obj,String tag);
3.消息接收
 通过注解@Subscriber(tag=""),接收函数使用tag来标识可接收的事件类型.
 mode=ThreadMode.POST 事件在哪个线程发布,接收函数就执行在哪个线程
                 MAIN 事件接收函数执行在UI线程
                 ASYNC事件执行在一个独立的异步线程中
4.activity之间的传递
 EventBus.getDefault().postSticky(Object obj,String tag);
5.activity接收
 需要注册EventBus.getDefault.registerSticky(Object obj);
 然后@Subscriber(tag="")

相关推荐