LifecycleAwareListeners
LifecycleAwareListeners is a container for listeners with Android Lifecycle awareness.
It forwards events to registered listeners, depending on their lifecycle state. Events are forwarded to regular listeners when their lifecycle owner is active. Events for forever listeners are always received.
Lifecycle owners are considered active when their state is Lifecycle.State.STARTED or Lifecycle.State.RESUMED.
Listeners will be removed automatically when their lifecycle owner's state becomes Lifecycle.State.DESTROYED.