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
发布事件和接收事件在同一个线程。(避免执行耗时操作,防止阻塞线程)

ThreadMode.MAIN
不论事件是在哪个线程中发布出来的,该事件处理函数都会在UI线程中执行。(该方法可以用来更新UI,但是不能处理耗时操作)

ThreadMode.BACKGROUND
如果事件是在UI线程中发布出来的,那么该事件处理函数就会在新的线程中运行;
如果事件本来就是子线程中发布出来的,那么该事件处理函数直接在发布事件的线程中执行。
(禁止进行UI更新操作)

ThreadMode.ASYNC
无论事件在哪个线程发布,该事件处理函数都会在新建的子线程中执行。(禁止进行UI更新操作)

猜你喜欢

转载自blog.csdn.net/riqthen/article/details/80593207