EventBus3.1.1

https://github.com/greenrobot/EventBus
参考:Android EventBus 3.0.0 使用总结
发送数据:
EventBus.getDefault().post(a);
接收数据:

  • 注册:EventBus.getDefault().register(this);
  • 解注册:EventBus.getDefault().unregister(this);
  • 处理数据:
@Subscribe(threadMode = ThreadMode.MAIN) public void test(A a){//参数类型与发送的数据的类型相同}

四种threadMode:
ThreadMode.POSTING
发布事件和接收事件在同一个线程。(避免执行耗时操作,防止阻塞线程)
【EventBus3.1.1】ThreadMode.MAIN
不论事件是在哪个线程中发布出来的,该事件处理函数都会在UI线程中执行。(该方法可以用来更新UI,但是不能处理耗时操作)
ThreadMode.BACKGROUND
如果事件是在UI线程中发布出来的,那么该事件处理函数就会在新的线程中运行;
如果事件本来就是子线程中发布出来的,那么该事件处理函数直接在发布事件的线程中执行。
(禁止进行UI更新操作)
ThreadMode.ASYNC
无论事件在哪个线程发布,该事件处理函数都会在新建的子线程中执行。(禁止进行UI更新操作)

    推荐阅读