EventBus is a publish/subscribe event bus optimized for Android.意思指的是EventBus是用来优化Android的一个可发布可订阅的事件总线。目前为止EventBus3.0是官方的最新版本。今天我们一起学习EventBus3.0的简单使用。
关于EventBus3.0的使用流程
- 注册与反注册
- 发布事件以及订阅事件
- 发布粘性事件以及订阅粘性时间
- 创建一个通用的传递泛型的对象类以及EventConfig类
注册与反注册
想要使用EventBus发布或者订阅事件首先第一步得在相应的Activity或者Fragment里面注册与反注册,当然我只是举个例子。你完全可以在Service或其他组件注册与反注册。如果app多处地方都有用到EventBus订阅时间建议写一个基类Activity或者写一个基类Fragment,在Activity或者是Fragment实现oncreate()、onActivityCreated()以及ondestroy()方法,并且分别做Eventbus的注册与反注册。
|
发布事件以及订阅事件
通过在Activity或者Fragment注册与反注册之后,我们就可以发布事件以及订阅事件了。在主线程中向已经打开的Activity或者Fragment发送事件,在MainActivity中订阅事件:以下分别是在默认发布线程接收,在主线程接收、在异步线程接收、在后台线程接收。接收的顺序:ASYNC–BACKGROUND–MAIN–POSTING。根据不同情况我们可以通过不同参数在不同线程中订阅事件。
|
发布粘性事件以及订阅粘性事件:
假入我们想要发布一个事件并在还未打开的Activity或者是Fragment中订阅这个事件,这时候我们可以用到发布粘性事件以及订阅粘性事件。意思是ActivityA现在发布一个事件,但是ActivityB还未启动,这时候我们通过发布粘性事件在ActivityB中订阅粘性事件。需要注意的一点是:在接收完粘性事件之后如果没有别的需求最好通过removeStickyEvent(Object object)将这个事件remove掉。否则它会一直保留到最后。粘性事件的订阅顺序:ASYNC–MAIN–POSTING– BACKGROUND。注意的是默认订阅事件是为非粘性事件,即sticky为false。假如我们想要接收粘性事件此时应该在订阅注解参数中添加sticky=true;
|
创建一个通用的传递泛型的对象类以及EventConfig类
|
这就是EventBus3.0的简单实用步骤。