У меня есть интерфейс, который работает с состоянием.
interface HasState<S> {
val state: S?
}
и в реализации состояние предоставляется через liveData.Все работает нормально, вот так:
class StateThing: HasState<State> {
override val state = State()
val liveData = MutableLiveData<State>()
// functions which update liveData
}
За исключением того момента, когда я перемещаю жилоданные в интерфейс HasState
и переопределяю их в реализации, они ломаются.Это не работает:
interface HasState<S> {
val state: S?
val liveData: MutableLiveData<S>
}
class StateThing: HasState<State> {
override val state = State()
override val liveData = MutableLiveData<State>()
// functions which update liveData
}
HasState по-прежнему предоставляет liveData, как и раньше, но теперь функция liveData.observe(lifecycleOwner)
никогда не получает событие Observer.
Почему есть разница между этими двумя