EventBus Features

What makes greenrobot’s EventBus unique, are its features:

Simple yet powerful: EventBus is a tiny library with an API that is super easy to learn. Nevertheless, your software architecture may great benefit by decoupling components: Subscribers do not have know about senders, when using events.

Battle tested: EventBus is one of the most used Android libraries: thousands of apps use EventBus including very popular ones. Over a billion app installs speak for themselves.

High Performance: Especially on Android, performance matters. EventBus was profiled and optimized a lot; probably making it the fastest solution of its kind.

Convenient Annotation based API (without sacrificing performance): Simply put the @Subscribe annotation to your subscriber methods. Because of a build time indexing of annotations, EventBus does not need to do annotation reflection during your app’s run time, which is very slow on Android.

Android main thread delivery: When interacting with the UI, EventBus can deliver events in the main thread regardless how an event was posted.

Background thread delivery: If your subscriber does long running tasks, EventBus can also use background threads to avoid UI blocking.

Event & Subscriber inheritance: In EventBus, the object oriented paradigm apply to event and subscriber classes. Let’s say event class A is the superclass of B. Posted events of type B will also be posted to subscribers interested in A. Similarly the inheritance of subscriber classes are considered.

Zero configuration: You can get started immediately using a default EventBus instance available from anywhere in your code.

Configurable: To tweak EventBus to your requirements, you can adjust its behavior using the builder pattern.