【Android知识笔记】UI体系(二)

什么是UI线程?

常说的UI线程到底是哪个线程?UI线程一定是主线程吗?

下面先给出两条确定的结论:

  • UI线程就是刷新UI所在的线程
  • UI是单线程刷新的

关于第二条为什么UI只能是单线程刷新的呢?道理很简单,因为多线程访问的话需要加锁,太卡,所以一般系统的UI框架都是采用单线程实现的。

那么在Android中是否是意味着UI线程==主线程

在Android中要在UI线程执行代码,有两种常见的调用方式:

  • Activity.runOnUiThread(Runnable)
  • View.post(Runnable)

【Android知识笔记】UI体系(二)_第1张图片

如上面代码所示,对于 Activity.runOnUiThread(Runnable) 而言,非常简单,它的UI线程就是在 attach 方法中赋值的当前线程对象 mUiThread,而我们知道 attach 方法是在 Activity 启动流程中执行在Android的主线程中的,因此对 Activity 来说 UI 线程就是主线程

你可能感兴趣的:(Android知识笔记,android,UI线程,View绘制原理,invalidate,LayoutInflater,View.post)