LiveData больше не работает при перемещении в интерфейс - PullRequest
0 голосов
/ 05 июля 2019

У меня есть интерфейс, который работает с состоянием.

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.

Почему есть разница между этими двумя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...