【发布时间】:2020-10-29 12:49:43
【问题描述】:
如何在调用它的协程之外使用来自房间数据库的响应
我需要使用协程来执行来自房间数据库的请求,然后将此数据显示在 recyclerview 中。我遇到的问题是我无法从数据库中获得响应以显示在协程之外。
我的代码。
class seconddisplay : AppCompatActivity(){
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.second_display)
GlobalScope.launch {
val respo = second_Database.getInstance(context = this@seconddisplay).DAO().seeAllcodes()
}
second_recyclerview.apply {
layoutManager = LinearLayoutManager(this@seconddisplay)
adapter = displayAdapter(respo)
}
}
我也不能将 recyclerview 代码放在协程中,因为它说你不能触及视图的层次结构。
【问题讨论】:
-
不,您不能,您应该将该代码放在启动块中。在 respo call bas 完成之前,您无法暂停代码(阻止它除外)。它是异步的。
标签: android kotlin android-room kotlin-coroutines coroutine