【发布时间】:2019-12-02 10:34:48
【问题描述】:
我是多线程的新手,正在寻找解决这个问题的方法。 我正在协程中启动一个方法,它更新我的数据库中的数据,如果它更新了,我想为用户更新 UI。这个怎么办?我不能将 runOnUiThread 放在协程中。是否有某种类型的魔法,例如 -> 当协程完成时 -> 然后 -> runOnUi?
问候
【问题讨论】:
-
也许观察数据库的更新并在更新后重新渲染 UI。带有 LiveData 的 Room 可以为您提供同一事物的 observables
-
嗯,这是个好主意。会检查这个:)但是有没有解决方案等待在协程范围内运行的东西完成?
-
任何没有 async 关键字的挂起函数都将在一个范围内按顺序运行,因此您可以放置两个函数,一个用于写入,另一个用于从 DB 中读取。
-
看看这篇medium.com/androiddevelopers/…的文章在这里视图上的动画是按顺序完成的,也可以同时使用协程完成(编辑链接)
-
谢谢 :) 这么新鲜的消息(今天写的 :D)
标签: android multithreading kotlin-coroutines