Android协程io里面为什么可以做view的操作

class CoroutineActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_coroutine)
runBlocking(Dispatchers.IO){
for (i in 0..99) {
Log.i("ddff", "onHandleIntent: $i")
}
test.setText(this.coroutineContext.toString())
}

}

}

简单理解就是 runBlocking开启一个阻塞线程,执行结束后对UI的操作是主线程在做。
相当于Thread+Handler

应该是协程底层实现做了部分优化,检测到操作UI切换到主线程执行了。 但在 onTouchEvent 或 setOnClickListener 里执行是会报错的。