Запуск наблюдателя MutableLivedata

У меня есть вопрос о работе mutablelivedata во Viewmodel. Просто задает значение функции запуска триггера MutableLivedata? Если мы изменим содержимое mutablelivedata без setvalue, может ли оно быть запущено?

0 ответов

Я сомневаюсь. Только способы ниже отправляют события в наблюдаемые:

liveData.postValue("a");
liveData.setValue("b");

https://developer.android.com/reference/android/arch/lifecycle/MutableLiveData

Он сработает, только если вы позвоните setValue или postValue. Если вы используете Kotlin, вы можете написать себе расширение для запускаLiveData:

fun <T> MutableLiveData<T>.trigger() {
    value = value
}

а затем вы можете просто позвонить:

mutableLiveData.trigger()

И SetValue(), и значение post будут запускать события. Единственное отличие состоит в том, что postValue() также может вызывать значение из фонового потока. Принимая во внимание, что заданное значение должно вызываться в основном потоке. postValue() предпочтительнее для установки значения ()

Другие вопросы по тегам