EvenBus:Android应用组件之间高效通信的开发库

当一个Android应用功能越来越多的时候,保证应用的各个部分之间高效的通信将变得越来越困难。如何优雅地解决这个问题?这时候,就需要使用到EventBus。

EventBus是GreenRobot出品的Android系统的一个Event Bus类库,使用起来和之前我们所介绍的Square的Otto差不多,都是用来简化应用组件之间的通信。

09200119-5952562bb5bb4802b4e0868aab8e8623

安装

1 使用gradle

2使用  maven

使用如下:

    1. Implement any number of event handling methods in the subscriber:public void onEvent(AnyEventType event) {}
    2. Register subscribers:eventBus.register(this);
    3. Post events to the bus:eventBus.post(event);
    4. Unregister subscriber:eventBus.unregister(this);

EventBus提供了几种ThreadMode线程模型来处理事件,这个本身是可以扩展的,你完全可以按照自己的需要来自定义你所需要的线程模型:

PostThread:事件响应就在事件发布的线程,即时响应。

MainThread::事件响应在android的主线程也即UI线程,即时响应。

BackGroundThread:事件响应在后台线程。当事件发布在工作线程时,事件处理就在这个工作线程;当事件发布在主线程时,就另开一个唯一的工作线程来线性的响应事件。即时响应:

Asyn:事件响应在一个独立的工作线程,与事件发布的线程和主线程不同。一般用来来处理一些耗时的操作如网络数据等,尽量避免同时触发大量的异步线程,EventBus内部使用了一个线程池来复用线程。

而下面使用的示例,就是如果网络连接丢失,该如何通知一个活动:

 

开源地址:https://github.com/greenrobot/EventBus

1 收藏

资源整理者简介:sunbiaobiao

(新浪微博:@sunbiao将军) 个人主页 · 贡献了178个资源 · 10


直接登录

推荐关注

按分类快速查找

关于资源导航
  • 伯乐在线资源导航收录优秀的工具资源。内容覆盖开发、设计、产品和管理等IT互联网行业相关的领域。目前已经收录 1439 项工具资源。
    推送伯乐头条热点内容微信号:jobbole 分享干货的技术类微信号:iProgrammer