加入CODE CHINA

· 不限速    · 不限空间    · 不限人数    · 私仓免费

免费加入
    README.md

    EventBus

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

    Build Status Follow greenrobot on Twitter

    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:

      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.

    There are also some examples.

    Note: we highly recommend the EventBus annotation processor with its subscriber index. This will avoid some reflection related problems seen in the wild.

    Add EventBus to your project

    Available on Maven Central.

    Via Gradle:

    implementation 'org.greenrobot:eventbus:3.2.0'

    Via Maven:

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

    R8, ProGuard

    If your project uses R8 or ProGuard add the following rules:

    -keepattributes *Annotation*
    -keepclassmembers class * {
        @org.greenrobot.eventbus.Subscribe <methods>;
    }
    -keep enum org.greenrobot.eventbus.ThreadMode { *; }
     
    # And if you use AsyncExecutor:
    -keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {
        <init>(java.lang.Throwable);
    }

    Homepage, Documentation, Links

    For more details please check the 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 (C) 2012-2020 Markus Junginger, greenrobot (https://greenrobot.org)

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

    Other projects by greenrobot

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

    Essentials 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.

    项目简介

    🚀 Github 镜像仓库 🚀

    源项目地址

    https://github.com/greenrobot/EventBus

    发行版本 5

    EventBus 3.2

    全部发行版

    贡献者 29

    全部贡献者

    开发语言

    • Java 95.8 %
    • CSS 4.2 %