Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://greenrobot.github.io/EventBus/
Event bus for Android and Java that simplifies communication between Activities, Fragments, Threads, Services, etc. Less code, better quality.
https://greenrobot.github.io/EventBus/
Last synced: 6 days ago
JSON representation
Event bus for Android and Java that simplifies communication between Activities, Fragments, Threads, Services, etc. Less code, better quality.
- Host: GitHub
- URL: https://greenrobot.github.io/EventBus/
- Owner: greenrobot
- License: apache-2.0
- Created: 2012-07-16T16:55:40.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2024-02-21T18:18:34.000Z (10 months ago)
- Last Synced: 2024-11-29T17:51:19.081Z (14 days ago)
- Language: Java
- Homepage: http://greenrobot.org/eventbus/
- Size: 1.66 MB
- Stars: 24,687
- Watchers: 1,040
- Forks: 4,662
- Open Issues: 143
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-android - EventBus - EventBus is a library that simplifies communication between different parts of your application. (Libraries / Utility)
- awesome-android - EventBus - EventBus is a library that simplifies communication between different parts of your application. (Libraries / Utility)
- awesome-android-cn - 官网
README
EventBus
========
[EventBus](https://greenrobot.org/eventbus/) is a publish/subscribe event bus for Android and Java.
[![Build Status](https://github.com/greenrobot/EventBus/actions/workflows/gradle.yml/badge.svg)](https://github.com/greenrobot/EventBus/actions)
[![Follow greenrobot on Twitter](https://img.shields.io/twitter/follow/greenrobot_de.svg?style=flat-square&logo=twitter)](https://twitter.com/greenrobot_de)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 (~60k jar)
* is proven in practice by apps with 1,000,000,000+ installs
* has advanced features like delivery threads, subscriber priorities, etc.EventBus in 3 steps
-------------------
1. Define events:```java
public static class MessageEvent { /* Additional fields if needed */ }
```2. Prepare subscribers:
Declare and annotate your subscribing method, optionally specify a [thread mode](https://greenrobot.org/eventbus/documentation/delivery-threads-threadmode/):```java
@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:```java
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
```3. Post events:
```java
EventBus.getDefault().post(new MessageEvent());
```Read the full [getting started guide](https://greenrobot.org/eventbus/documentation/how-to-get-started/).
There are also some [examples](https://github.com/greenrobot-team/greenrobot-examples).
**Note:** we highly recommend the [EventBus annotation processor with its subscriber index](https://greenrobot.org/eventbus/documentation/subscriber-index/).
This will avoid some reflection related problems seen in the wild.Add EventBus to your project
----------------------------Available on Maven Central.
Android projects:
```groovy
implementation("org.greenrobot:eventbus:3.3.1")
```Java projects:
```groovy
implementation("org.greenrobot:eventbus-java:3.3.1")
```
```xmlorg.greenrobot
eventbus-java
3.3.1```
R8, ProGuard
------------If your project uses R8 or ProGuard this library ships [with embedded rules](/eventbus-android/consumer-rules.pro).
Homepage, Documentation, Links
------------------------------
For more details please check the [EventBus website](https://greenrobot.org/eventbus). Here are some direct links you may find useful:[Features](https://greenrobot.org/eventbus/features/)
[Documentation](https://greenrobot.org/eventbus/documentation/)
[Changelog](https://github.com/greenrobot/EventBus/releases)
[FAQ](https://greenrobot.org/eventbus/documentation/faq/)
License
-------
Copyright (C) 2012-2021 Markus Junginger, greenrobot (https://greenrobot.org)EventBus binaries and source code can be used according to the [Apache License, Version 2.0](LICENSE).
Other projects by greenrobot
============================
[__ObjectBox__](https://objectbox.io/) ([GitHub](https://github.com/objectbox/objectbox-java)) is a new superfast object-oriented database.[__Essentials__](https://github.com/greenrobot/essentials) is a set of utility classes and hash functions for Android & Java projects.