Android setContentView操作

Android setContentView操作,android,view,android-activity,Android,View,Android Activity,我已经读到,在活动的早期调用setContentView()非常重要,因为它构建的视图对象可能会被onCreate()中的后续代码操纵 就生命周期而言,视图是在调用setContentView()后立即绘制到屏幕上,还是允许onCreate()函数在视图对象中构建/填充信息,并在onCreate()完成后等待实际绘制 谢谢 视图是否绘制到屏幕上 调用setContentView()后 没有 或者它是否允许onCreate() 函数来生成/填充 视图对象中的信息,以及 等你画完之后再画 onCre

我已经读到,在活动的早期调用setContentView()非常重要,因为它构建的视图对象可能会被onCreate()中的后续代码操纵

就生命周期而言,视图是在调用setContentView()后立即绘制到屏幕上,还是允许onCreate()函数在视图对象中构建/填充信息,并在onCreate()完成后等待实际绘制

谢谢

视图是否绘制到屏幕上 调用setContentView()后

没有

或者它是否允许onCreate() 函数来生成/填充 视图对象中的信息,以及 等你画完之后再画 onCreate()完成了吗


对。
视图
对象作为
setContentView()
的一部分立即创建。但是,所有的绘图操作(从
onCreate()
或其他任何地方)都会将消息放到主应用程序线程处理的消息队列中。

谢谢!你能给我指出一个好的资源来更深入地解释主应用程序线程处理的消息队列吗?这对我来说是一个新概念,因为我刚刚开始Android编程。没有多少直接的相关文章。一般的经验法则是:如果它修改了屏幕,当您调用该方法时,实际的屏幕更改不会生效(例如,
TextView
上的
setText()
)。相反,您的方法调用创建了一个表示请求的对象,该对象位于消息队列上。当主应用程序线程运行代码时(例如,
onCreate()
),该队列将被处理。这就是为什么你被告知不要让长时间运行的东西进入主应用程序线程。这对大多数人来说可能是显而易见的,但作为一个初学者,我发现这也很有用(从Handler对象的文档中),因为我不知道这样的消息队列:为应用程序创建进程时,其主线程专用于运行消息队列,负责管理顶级应用程序对象(活动、广播接收器等)及其创建的任何窗口