View 和Activity生命周期

463 阅读3分钟

[TOC]

### 根局部为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

```

2. 关闭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

```

2. 退出这个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不会执行

```xml

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

```

```xml

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

```