美文网首页
View和Activity的生命周期

View和Activity的生命周期

作者: pdog18 | 来源:发表于2016-12-08 17:01 被阅读320次

View和Activity的生命周期

  • 如果根布局为RelativeLayout,那么onMeasume() 共会执行4次
  • 如果根布局为LinearLayout
    • 如果控件有weight 属性,那么onMeasume() 共会执行4次
    • 如果控件有weight属性,但是根布局中只有唯一一个子控件,那么onMeasume() 共会执行2次

根局部为RelativeLayout

  1. 开启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
  1. 关闭Activity
E/view的生命周期: onWindowFocusChanged false
E/log: Activity生命周期:onPause
E/log: Activity生命周期:onStop
E/log: Activity生命周期:onDestroy
  • 开启另外的Activity

    1. 开启一个的Activity,使原本的Activity进入onStop
    E/log: Activity生命周期:onPause
    E/view的生命周期: onWindowFocusChanged false
    E/log: Activity生命周期:onStop
    
    1. 退出这个Activity,使原本的Activity重新进入到前台
    E/log: Activity生命周期:onRestart
    E/log: Activity生命周期:onStart
    E/log: Activity生命周期:onResume
    E/view的生命周期: onWindowFocusChanged true
    E/view的生命周期: onDraw
    
  • 开启一个透明的Activity

    1. 开启一个透明的Activity,使原本的Activity进入onPause

      E/log: Activity生命周期:onPause
      E/view的生命周期: onWindowFocusChanged false
      
    2. 关闭透明的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

相关文章

网友评论

      本文标题:View和Activity的生命周期

      本文链接:https://www.haomeiwen.com/subject/piysmttx.html