A rxjava based lightweight event bus. Traditional usage: EventBus.getDefault().receive(MyEvent.class).subscribe(event->{ System.out.println("event=" + event); }); ... EventBus.getDefault().post(new MyEvent()); Annotation based usage: EventBus.getDefault().bind(this); .. @Recieve(eventTypes = MyEvent.class) private void onReceive(Object event) { System.out.println("event2=" + event); } ... EventBus.getDefault().unbind(this) .