android setContentView处理流程
1、 Activity在onCreate()方法之前调用attach()方法,在attach方法中会创建Window对象。Window对象创建时并没有创建Decor对象。
2、 用户在Activity中调用setContentView()方法。
3、 setContentView()调用Window的setContentView()方法。这时会检查DecorView是否存在,如果不存在则调用installDecor()方法创建DecorView对象;之后调用generateLayout()方法把用户自己的View添加到DecorView中;最后回调Callback的onContentChanged()方法通知用户界面改变了。
注意事项
Window是一个抽象类,提供了各种窗口操作的方法,比如设置背景标题等。
- PhoneWindow是Window的唯一实现类,它里面实现了各种添加背景主题ContentView的方法,内部通过DecorView来添加顶级视图。
- 每一个Activity上都有一个Window,可以通过getWindow()获取;DecorView继承于FrameLayout,setContentView()则是添加在它里面的@id/content里面。
4.setContentView()里面创建了DecorView,根据Theme/feature添加了对应的布局文件,当setContentView()设置显示后会回调Activity的onContentChanged()方法。
转载于:https://blog.51cto.com/xuguohongai/2116871
android setContentView处理流程相关推荐
- Android SDK 开发流程
Android SDK 开发流程 1创建library 1.点击file --> new---->new Module 2.点击 next 3.编写SDK内容 public class L ...
- Android手机启动流程与TEE OS
2019独角兽企业重金招聘Python工程师标准>>> 转载:https://cloud.tencent.com/developer/article/1043659 一个移植了TEE ...
- Android View 测量流程(Measure)完全解析
前言 上一篇文章,笔者主要讲述了DecorView以及ViewRootImpl相关的作用,这里回顾一下上一章所说的内容:DecorView是视图的顶级View,我们添加的布局文件是它的一个子布局,而V ...
- android activity启动流程_1307页!一线大厂Android面试全套真题解析!
/ 前言 / 金九银十到了,很多读者都反映有面试的需求,所以我特地给大家准备了一点资料! 下面的题目都是大家在面试一线互联网大厂时经常遇到的面试真题和答案解析,如果大家还有其他好的题目或者好的 ...
- 【Android 逆向】加壳的 Android 应用启动流程 | 使用反射替换 LoadedApk 中的类加载器流程
文章目录 一.加壳的 Android 应用启动流程 二.使用反射替换 LoadedApk 中的类加载器流程 一.加壳的 Android 应用启动流程 加壳的 Android 应用启动流程 : 加壳的 ...
- 【Android 逆向】Android 进程简介 ( Android 应用启动流程 )
文章目录 前言 一.Android 进程 二.Android 应用启动流程 前言 参考 [Android 逆向]Android 系统文件分析 ( /proc/pid 进程号对应进程目录 | oom_a ...
- 结合源码深入理解Android Crash处理流程
应用程序crash在开发过程中还是很常见的,本文主要是从源码的角度去跟踪下Android对于crash的处理流程.App crash的全称:Application crash.而Crash又分为:na ...
- Android Camera(5)---Android Camera调用流程
Android Camera调用流程 http://blog.csdn.net/lushengchu_luis/article/details/11033095 1.Packages/apps/到fr ...
- android关机充电流程、充电画面显示
一.Android正常开机流程.关机充电流程 在写这篇文章之前我们先看两个流程:正常开机流程,关机充电系统启动流程 1.正常开机流程,按开机键. 可大致分成三部分 (1).OS_level:UBOOT ...
最新文章
- 优雅的在React项目中使用Redux
- sql注入-error、boolean、time-based and 宽字节
- wavecn 2.0.0.5 正式版_谷歌Android Studio 3.5正式版发布:稳步推进Project Marble计划
- iis下安装Memcache
- Spring框架相关问题
- phoenix-sqlline 连接失败
- oracle检查外键依赖,Oracle中检查外键是否有索引的SQL脚本分享
- 今天早上买的这个猪蹄和花生辣条不是味道
- 如何写好一个综述,以一个综述为例
- 龙兵智能名片多企业小程序V2.3.3-开源版
- 数字逻辑电路设计(实验测试题)
- 盛世昊通解析为什么你买不到想要的新能源汽车
- 两化融合是从工业大国向工业强国转变必由之路
- 局域网内Linux下开启ftp服务的“曲折路”和命令复习
- 拉勾教育-求职技巧总结
- 使用asan检测内存泄漏、堆栈溢出等问题
- 七大实例巧解主板常见故障
- 微软Live Mail包含重大Bug,可导致用户无法登录,我已经一个多月无法登录自己的邮箱了。...
- SSM框架-SpringMVC详解,kafka常见的面试问题
- python 列表和元组
热门文章
- android微信朋友圈视频无法播放,微信朋友圈不能分享手机视频怎么回事?微信朋友圈大视频功能安卓不能用吗?...
- 删除安装的mysql数据库文件_安装/删除MySQL数据库
- mysql的pager命令,mysql pager用法命令行命令
- redis3.0 java spring_spring整合redis以及使用RedisTemplate的方法
- Eclipse console 中文乱码解决
- 采用APACHE POI操作EXCEL文件--计算式调用另一文件
- Maximum XOR Sum 系列问题
- 可执行文件组成及内存映射
- React性能优化 PureComponent
- spring cloud各组件详解