greenrobot/EventBus

Additional

Language
Java
Version
V3.1.1 (Aug 27, 2018)
Created
Jul 16, 2012
Updated
Aug 27, 2018
Owner
Markus Junginger (greenrobot)
Contributors
Prateek Srivastava (f2prateek)
william-ferguson-au
Joan Zapata (JoanZapata)
PerfectCarl
jnagels
Markus Junginger (greenrobot)
talklittle
Frieder Bluemle (friederbluemle)
Leandros
Heinrich Reimer (heinrichreimer)
stefanhoth
alexnixon
nbeloglazov
mikosik
jtuchek
zsoltvilagos
Chau Thai (chthai64)
mormih
Show all (20)20
Activity
Badge
Generate
Download
Source code
APK file

Advertising

Hey, do have a minute for a quick survey on how we are doing with EventBus?

EventBus

EventBus is a publish/subscribe event bus for Android and Java.

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.

EventBus in 3 steps

  1. Define events:

    public static class MessageEvent { /* Additional fields if needed */ }
  2. Prepare subscribers: Declare and annotate your subscribing method, optionally specify a thread mode:

    @Subscribe(threadMode = ThreadMode.MAIN)  
    public void onMessageEvent(MessageEvent event) {/* Do something */};

    Register and unregister your subscriber. For example on Android, activities and fragments should usually register according to their life cycle:

     @Override
     public void onStart() {
         super.onStart();
         EventBus.getDefault().register(this);
     }
    
     @Override
     public void onStop() {
         super.onStop();
         EventBus.getDefault().unregister(this);
     }
  3. Post events:

     EventBus.getDefault().post(new MessageEvent());

Read the full getting started guide.

Add EventBus to your project

Via Gradle:

implementation 'org.greenrobot:eventbus:3.1.1'

Via Maven:

<dependency>
    <groupId>org.greenrobot</groupId>
    <artifactId>eventbus</artifactId>
    <version>3.1.1</version>
</dependency>

Or download the latest JAR from Maven Central.

Homepage, Documentation, Links

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

Features

Documentation

ProGuard

Changelog

FAQ

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

License

Copyright (C) 2012-2017 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

ObjectBox (GitHub) is a new superfast object-oriented database for mobile.

Essentials (GitHub) is a set of utility classes and hash functions for Android & Java projects.

greenDAO (GitHub) 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.