陈斌彬的技术博客

Stay foolish,stay hungry

Android - EventBus

EventBus is a publish/subscribe event bus optimized for Android.

img

EventBus…

  • simplifies the communication between components
    • decouples event senders and receivers
    • performs well with Activities, Fragments, and background threads
    • avoids complex and error-prone dependencies and life cycle issues
  • makes your code simpler
  • is fast
  • is tiny (~50k jar)
  • is proven in practice by apps with 100,000,000+ installs
  • has advanced features like delivery threads, subscriber priorities, etc.

Build Status

EventBus in 3 steps

  1. Define events:
    public class MessageEvent { / Additional fields if needed / }

  2. Prepare subscribers
    Register your subscriber (in your onCreate or in a constructor):
    eventBus.register(this);

    Declare your subscribing method:
    @Subscribe
    public void onEvent(AnyEventType event) {/ Do something /};

  3. Post events:
    eventBus.post(event);

This getting started guide shows these 3 steps in more detail.

Add EventBus to your project

Please ensure that you are using the latest version by checking here

Gradle:

1
compile 'org.greenrobot:eventbus:3.0.0'

Maven:

1
2
3
4
5
<dependency>
    <groupId>org.greenrobot</groupId>
    <artifactId>eventbus</artifactId>
    <version>3.0.0</version>
</dependency>

Or download EventBus from Maven Central

Homepage, Documentation, Links

For more details on EventBus please check EventBus' website. Here are some direct links you may find useful:

Features

Documentation

Changelog

FAQ

How does EventBus compare to other solutions, like Otto from Square? Check this comparison.

License

Copyright © 2012-2016 Markus Junginger, greenrobot (http://greenrobot.org)

EventBus binaries and source code can be used according to the Apache License, Version 2.0.

More Open Source by greenrobot

greenrobot-common is a set of utility classes and hash functions for Android & Java projects.

greenDAO is an ORM optimized for Android: it maps database tables to Java objects and uses code generation for optimal speed.

Follow us on Google+ or check our homepage to stay up to date.