Android自定义View生命周期

来源:互联网 发布:mac os 10.11懒人版 编辑:程序博客网 时间:2024/05/16 09:05

http://blog.csdn.net/ljzdyh/article/details/52035932

定义一个自定义CustomView,在xml中加载,打印MainActivity和view各个生命周期方法,对比如图显示     


自定义view的生命周期过程主要分为三个环节,初始准备,监测绘制,销毁

如图所示,一开始view在xml中加载,调用构造函数CustomView(Context contextt, AttributeSet attrs),当从xml中加载完成后,调用onFinishInflate 方法,这时view完成初始准备环节。

view的绘制发生在activity onResume之后,确切来说是在onAttachedToWindow之后,onAttachedToWindow是将view绑定到activity所在window,附加到window后,程序开始进行所有view的绘制。

PS 如果view中需要注册监听,开始执行某动画效果,可以在onAttachedToWindow中开始调用执行。

我们都知道自定义view绘制当中最重要的有三个方法,onMeasure onLayout onDraw 

onMeasure 计算view高度宽度大小

onLayout 计算view位置

onDraw 绘制view

view绘制过程中为了确认view大小,会多次重复调用onMeasure。这跟view绘制机制有关,有兴趣可以去官网了解How Android Draws Views 

onWindowFocusChanged  是判断view是否获取焦点,参数hasWindowFocus 对应返回true 和false 可以用该方法判断view进出后台

onDetachedFromWindow 当activity销毁之后,view会从window上抽离,此时view销毁。

附上view生命周期简图

原创粉丝点击