什么是UI线程?
常说的UI线程到底是哪个线程?UI线程一定是主线程吗?
下面先给出两条确定的结论:
- UI线程就是刷新UI所在的线程
- UI是单线程刷新的
关于第二条为什么UI只能是单线程刷新的呢?道理很简单,因为多线程访问的话需要加锁,太卡,所以一般系统的UI框架都是采用单线程实现的。
那么在Android中是否是意味着UI线程==主线程?
在Android中要在UI线程执行代码,有两种常见的调用方式:
- Activity.runOnUiThread(Runnable)
- View.post(Runnable)

如上面代码所示,对于 Activity.runOnUiThread(Runnable) 而言,非常简单,它的UI线程就是在 attach 方法中赋值的当前线程对象 mUiThread,而我们知道 attach 方法是在
Android UI体系深度解析:UI线程、View绘制与刷新
本文详细介绍了Android UI体系,重点讲解了UI线程的概念,强调UI线程通常是主线程,但也可能是ViewRootImpl创建时的线程。文章深入分析了View的绘制流程,包括measure、layout和draw阶段,并探讨了View.invalidate()和View.requestLayout()的区别。此外,还讨论了在子线程中更新UI的多种方法,以及为何需要在UI线程中执行这些操作。最后,文章对LayoutInflater的工作原理进行了剖析,展示了如何从XML布局文件创建View组件。
订阅专栏 解锁全文
468

被折叠的 条评论
为什么被折叠?



