В документации для интерфейса Android LifecycleObserver указано:
Помечает класс как LifecycleObserver. У него нет никаких методов, вместо этого он полагается на аннотированные методы OnLifecycleEvent.
Итак, вместо реализации чего-то вроде:
fun onCreate() { ... }
вы пишете:
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
fun whateverName() { ... }
Почему они так спроектировали?