MutableLiveData setValue не выполняет следующий код - PullRequest
0 голосов
/ 26 марта 2020

У меня есть

var test : MutableLiveData<String> = MutableLiveData<String>("test")
...
somewhere callback fun from library {
    println("test 1")
    test.value = "123"
    println("test 2")
}

Однако в журнале печатается только test 1. Кто-нибудь знает эту проблему и как ее решить? Я проверил, что обратный вызов выполняется в главном потоке.

Примечание:

Проблемы возникают только с этим обратным вызовом, хорошо, если я .value в другом коде.

Ответы [ 2 ]

0 голосов
/ 26 марта 2020

Попробуйте это

test.postValue("123")

Это поможет

0 голосов
/ 26 марта 2020

Решено, мне нужно явно назначить значение внутри основного потока:

Handler(Looper.getMainLooper()).post(Runnable {
    test.value = "123"
})
...