aman
5/3/2019 - 5:42 PM

Observer Pattern - Using Event Bus

EventBus is a singleton

Every Event bus has event emitters which emit events and there are event Subscribers that actually listen to particular events based on the type of data they are expecting

Event Emitter --> EventBus --> Event Subscribers

class SubscriberClass {
  fun onStart(){
    EventBus.getDefault().register(this)
  }
  
  @Subscribe(ThreadMode = ThreadMode.MAIN)
  fun onEvent(event:CustomEvent){
    Log.i(event.message)
  }
}
data class CustomEvent(val message:String)
class EmitterClass {
  fun createEvent(){
    EventBus.getDefault().post(CustomEvent("This is the sample message))
  }
}