MutableLiveData: Coroutine からバックグラウンド スレッドで setValue を呼び出すことはできません 質問する

MutableLiveData: Coroutine からバックグラウンド スレッドで setValue を呼び出すことはできません 質問する

コルーチンから LiveData の更新をトリガーしようとしています:

object AddressList: MutableLiveData<List<Address>>()
fun getAddressesLiveData(): LiveData<List<Address>> {
    AddressList.value = listOf()
    GlobalScope.launch {
        AddressList.value = getAddressList()
    }
    return AddressList
}

しかし、次のエラーが発生します。

IllegalStateException: バックグラウンド スレッドで setValue を呼び出すことはできません

コルーチンで動作させる方法はありますか?

ベストアンサー1

liveData.postValue(value)の代わりにを使用しますliveData.value = value。非同期と呼ばれます。

からドキュメンテーション:

投稿値- 指定された値を設定するタスクをメインスレッドに投稿します。

おすすめ記事