EventBus使用笔记

概念

EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦。

https://github.com/greenrobot/EventBus”>EventBus源码点我

使用

1、准备工作

因为我使用的是Android Studio,所以第一步要添加依赖:

2、基本用法

1、在需要接收事件分发的页面注册EventBus

EventBus.getDefault().register(this);

2、在第二个页面或其他需要发送事件,发送事件使用的是post方法,里面是一个object参数,我们可以自己定义一个类,然后把这个实例传递进去

EventBus.getDefault().post(new EventParam());

3、当然就是在注册事件分发的页面接收传递过来的事件了,有四种方法:

onEvent():在哪个线程发的消息,就在哪个线程执行。
onEventMainThread():无论在哪个线程发布,都在主线程执行
onEventBackground():如果在主线程发布的,他会在子线程执行,如果在子线程发布,那么他会在其他子线程执行。
onEventAsync():无论在哪个线程发布的都会新创建一个线程执行

4、一定要在注册EventBus结束的时候解除绑定

EventBus.getDefault().unregister(this);

3、进阶,上面已经说了四个方法的使用了,下面说下怎么区别这四个方法。

就一句话,根据传递进来的参数,参数相同的就会被执行,不同的则不执行

你可能感兴趣的:(教程)