Gla*_*adi 0 android kotlin android-livedata kotlin-coroutines
我最近检查了 livedata 协程,发现了一些我无法理解的东西。为什么这段代码(观察时)没有冻结 UI?
val lv =
liveData (context=Dispatchers.Main){
var x = 0
while (true){
emit(x++)
delay(1000)
println(Thread.currentThread().name)
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢。
delay不会阻塞线程。它只是暂停您的协程并在一秒钟后恢复它。您可以更改delay为Thread.sleep(1000)并且您的 UI 将被冻结,因为Thread.sleep会阻塞线程。
| 归档时间: |
|
| 查看次数: |
120 次 |
| 最近记录: |