Hey, do have a minute for a quick survey on how we are doing with 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.
Define events:
publicstaticclassMessageEvent{/* Additional fields if needed */ }
Prepare subscribers: Declare and annotate your subscribing method, optionally specify a thread mode:
@Subscribe(threadMode = ThreadMode.MAIN) publicvoidonMessageEvent(MessageEventevent){/* Do something */};
Register and unregister your subscriber. For example on Android, activities and fragments should usually register according to their life cycle:
@OverridepublicvoidonStart(){super.onStart(); EventBus.getDefault().register(this)} @OverridepublicvoidonStop(){super.onStop(); EventBus.getDefault().unregister(this)}
Post events:
EventBus.getDefault().post(newMessageEvent());
Read the full getting started guide.
Via Gradle:
compile '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.
For more details please check the EventBus website. Here are some direct links you may find useful:
How does EventBus compare to other solutions, like Otto from Square? Check this comparison.
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.
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.