Запуск наблюдателя 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() предпочтительнее для установки значения ()