使用Android上的Otto Event Bus库

Otto是一个提供事件总线实施的开源项目。组件可以发布和订阅事件。

Otto是Google 的Guava事件总线库的一个分支,并且已被重新设计以尽可能支持Android。与Guava事件总线不同,Otto不考虑基类或接口的事件订阅。这样做是为了提高库的性能,并保持应用程序代码简单明了。

如果您使用Maven或Gradle作为构建系统,您可以简单地为其添加依赖关系

在gradle中配置:

使用Android上的Otto Event Bus库_第1张图片
使用Android上的Otto Event Bus库_第2张图片

您也可以从Download Otto手动下载 JAR ,并将其添加到应用程序的类路径中

如何设置Otto?

要使用Otto,请创建Bus该类的单例实例并为您的Android组件提供访问权限。这通常是在应用程序的Application对象中完成的

这里使用了ThreadEnforcer.MAIN参数。这强制Otto始终从主线程发送事件。如果你希望能够从任何线程发送事件,请使用ThreadEnforcer.ANY参数。

如何注册和注销事件?

事件注册是通过@Subcribe公共单参数方法的注释完成的。方法参数是事件键,即如果通过Otto事件总线发送这种数据类型,则调用该方法。

事件接收者必须通过该类的register方法进行注册Bus。

使用Android上的Otto Event Bus库_第3张图片

事件注销使用该unregister()方法。

如何发送活动

发送事件,不需要注册事件总线

使用Android上的Otto Event Bus库_第4张图片

新组件如何接收一个事件?

有时,新组件,如动态创建的fragment,应该在创建过程中接收事件数据。如果这个案件组件可以注册为这种事件数据的注册制作者@Produce。

有时,新组件,如动态创建的fragment,应该在创建过程中接收事件数据。如果这个案件组件可以注册为这种事件数据的注册制作者@Produce。

事件接收者必须通过该类的register方法进行注册Bus。

使用Android上的Otto Event Bus库_第5张图片



例子:

将依赖关系添加到build.gradle文件中。

使用Android上的Otto Event Bus库_第6张图片

activity_main.xml布局文件应该如下所示

使用Android上的Otto Event Bus库_第7张图片

fragment_main.xml的布局文件

使用Android上的Otto Event Bus库_第8张图片
使用Android上的Otto Event Bus库_第9张图片

这个例子是故意简单的。在真正的应用中,将Bus在Application该类中创建单例。

你可能感兴趣的:(使用Android上的Otto Event Bus库)