View和Activity的生命周期
- 如果根布局为RelativeLayout,那么
onMeasume()
共会执行4次 - 如果根布局为LinearLayout
- 如果控件有weight 属性,那么
onMeasume()
共会执行4次 - 如果控件有weight属性,但是根布局中只有唯一一个子控件,那么
onMeasume()
共会执行2次
- 如果控件有weight 属性,那么
根局部为RelativeLayout
- 开启Activity
E/log: Activity生命周期:onCreate
E/view的生命周期: onCreate
E/view的生命周期: onFinishInflate
E/log: Activity生命周期:onStart
E/log: Activity生命周期:onResume
E/view的生命周期: onAttachedToWindow
E/view的生命周期: onMeasure
E/view的生命周期: onMeasure
E/view的生命周期: onSizeChanged
E/view的生命周期: onLayout
E/view的生命周期: onWindowFocusChanged true
E/view的生命周期: onMeasure
E/view的生命周期: onMeasure
E/view的生命周期: onLayout
E/view的生命周期: onDraw
- 关闭Activity
E/view的生命周期: onWindowFocusChanged false
E/log: Activity生命周期:onPause
E/log: Activity生命周期:onStop
E/log: Activity生命周期:onDestroy
-
开启另外的Activity
- 开启一个的Activity,使原本的Activity进入onStop
E/log: Activity生命周期:onPause E/view的生命周期: onWindowFocusChanged false E/log: Activity生命周期:onStop
- 退出这个Activity,使原本的Activity重新进入到前台
E/log: Activity生命周期:onRestart E/log: Activity生命周期:onStart E/log: Activity生命周期:onResume E/view的生命周期: onWindowFocusChanged true E/view的生命周期: onDraw
-
开启一个透明的Activity
-
开启一个透明的Activity,使原本的Activity进入onPause
E/log: Activity生命周期:onPause E/view的生命周期: onWindowFocusChanged false
-
关闭透明的Activity,使原本的Activity,进入onResume
E/log: Activity生命周期:onResume E/view的生命周期: onWindowFocusChanged true
-
根局部为LinearLayout
-
子控件不含有weight属性
-
这个控件含有weight属性但是它是根布局的唯一子控件
E/log: Activity生命周期:onCreate E/view的生命周期: onCreate E/view的生命周期: onFinishInflate E/log: Activity生命周期:onStart E/log: Activity生命周期:onResume E/view的生命周期: onAttachedToWindow E/view的生命周期: onMeasure E/view的生命周期: onSizeChanged E/view的生命周期: onLayout E/view的生命周期: onMeasure E/view的生命周期: onLayout E/view的生命周期: onDraw E/view的生命周期: onWindowFocusChanged true
-
控件含有weight属性,并且它不是其根局部中的唯一子控件
E/log: Activity生命周期:onCreate E/view的生命周期: onCreate E/view的生命周期: onFinishInflate E/log: Activity生命周期:onStart E/log: Activity生命周期:onResume E/view的生命周期: onAttachedToWindow E/view的生命周期: onMeasure E/view的生命周期: onSizeChanged E/view的生命周期: onLayout E/view的生命周期: onMeasure E/view的生命周期: onLayout E/view的生命周期: onDraw E/view的生命周期: onWindowFocusChanged true
如果view没有任何没有内容,并且根布局内有其他内容,则最后的onDraw不会执行
<!--自定义view有weight, view中无内容显示,并且根布局中有其他控件,onDraw方法没有被执行-->
E/log: Activity生命周期:onCreate
E/view的生命周期: onCreate
E/view的生命周期: onFinishInflate
E/log: Activity生命周期:onStart
E/log: Activity生命周期:onResume
E/view的生命周期: onAttachedToWindow
E/view的生命周期: onMeasure
E/view的生命周期: onMeasure
E/view的生命周期: onSizeChanged
E/view的生命周期: onLayout
E/view的生命周期: onWindowFocusChanged true
E/view的生命周期: onMeasure
E/view的生命周期: onMeasure
E/view的生命周期: onLayout
<!--自定义view无weight,viwe有内容显示,onDraw方法被执行了-->
E/log: Activity生命周期:onCreate
E/view的生命周期: onCreate
E/view的生命周期: onFinishInflate
E/log: Activity生命周期:onStart
E/log: Activity生命周期:onResume
E/view的生命周期: onAttachedToWindow
E/view的生命周期: onMeasure
E/view的生命周期: onSizeChanged
E/view的生命周期: onLayout
E/view的生命周期: onWindowFocusChanged true
E/view的生命周期: onMeasure
E/view的生命周期: onLayout
E/view的生命周期: onDraw
网友评论