Kotlin Android 中的 runOnUiThread 和 CoroutineScope(Dispatchers.Main) 有什么区别

Dev*_*007 0 multithreading android kotlin android-runonuithread kotlin-coroutines

我不知道CoroutineScope(Dispatchers.Main).launchrunOnUiThread之间有什么区别,我认为两者都会在主线程上运行。

但仍然很混乱,有什么区别吗?

谢谢。

Ste*_*rix 5

首先,您runOnUiThread只能在 的上下文中调用Activity

其次,您不能从 中调用挂起函数runOnUiThread,但可以在块中调用CoroutineScope(Dispatchers.Main).launch

第三,runOnUiThread检查当前 ui 线程是否忙于其他操作,如果是,则将任务发布到活动处理程序,并在轮到时执行。