1. ホーム
  2. kotlin

[解決済み] MutableLiveData。コルーチンからバックグラウンドスレッドでsetValueを実行できない

2022-06-18 07:02:25

質問

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

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

と入力しても、以下のようなエラーが発生します。

IllegalStateException: バックグラウンドスレッドでsetValueを起動できません。

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

どのように解決するのですか?

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

から ドキュメント :

postValue - 与えられた値を設定するタスクをメインスレッドにポストする。