使用Android上的Otto Event Bus库

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

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

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

在gradle中配置:

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

如何设置Otto?

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

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

如何注册和注销事件?

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

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

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

如何发送活动

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

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

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

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

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



例子:

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

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

fragment_main.xml的布局文件

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,625评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,338评论 19 139
  • 前言 在微服务架构的系统中,我们通常会使用轻量级的消息代理来构建一个共用的消息主题让系统中所有微服务实例都连接上来...
    Chandler_珏瑜阅读 6,753评论 2 39
  • 面试题总结 通用 安卓学习途径, 寻找资料学习的博客网站 AndroidStudio使用, 插件使用 安卓和苹果的...
    JingBeibei阅读 1,822评论 2 21
  • 35个小时,跟大多数的书友一样,我看完了《三体》全集。 在第一部中,作者只是在讲人类世界和三体游戏这两条主线,而其...
    迷途小二哈阅读 835评论 0 0

友情链接更多精彩内容