说实话,之前对应这些基础的东西,我一直以为看一看心中有数就差不多了,可以说是不屑于整理笔记,感觉这种东西应该是看了一遍之后就信手拈来的东西,其实也是之前面试的时候 ,这种问题也是会问到的,我也能对答如流,但是不巧啊,昨天去海尔面试了,然后面试官问了我一个A —>B—> A的问题,我。。。。我不知道我当时说了什么。简直好像是说了一滩浆糊。把我自己都说尴尬了,难道是我面对大神紧张了?
Activity的生命周期全面分析
#####典型情况下的生命周期分析 :
- onCreate
表示Activity正在被创建, 这是生命周期的第一个方法,在这个方法里一般做一些初始化工作,比如调用setContentView去加载界面布局资源,初始化Activity所需数据;
- onRestart
表示Activity正在被重新启动 , 一般情况下,当当前Activity从不可见重新变为可见状态时,onRestart就会被调用;
- onStart
表示Activity正在被启动,此时还无法和用户交互;
- onResume
表示Activity已经可见,并且出现在前台开始活动;
- onPause
表示Activity正在停止,此时可以做一下存储数据、停止动画等工作,但是不能注意太耗时 ,因为会影响到新的Activity的显示,onPause必须先执行完,新的Activity的onResume才会执行
- onStop
表示Activity即将停止,可以做稍微重量级的回收工作;
- onDestory
表示Activity即将被销毁,这是Activity生命周期中的最后一个回调,在这里,我们可以做一些最终的回收工作和资源释放;
A-->B --> A 生命周期 ,如下Log:
```
08-05 16:32:55.286 18760-18760/com.lwt.acitivitydemo I/TAG-->: MainActivity-->onCreated
08-05 16:32:55.286 18760-18760/com.lwt.acitivitydemo I/TAG-->: MainActivity-->onStart
08-05 16:32:55.286 18760-18760/com.lwt.acitivitydemo I/TAG-->: MainActivity-->onResume
08-05 16:32:57.616 18760-18760/com.lwt.acitivitydemo I/TAG-->: MainActivity-->onPause
08-05 16:32:57.636 18760-18760/com.lwt.acitivitydemo I/TAG-->: SecondActivity-->onCreate
08-05 16:32:57.636 18760-18760/com.lwt.acitivitydemo I/TAG-->: SecondActivity-->onStart
08-05 16:32:57.636 18760-18760/com.lwt.acitivitydemo I/TAG-->: SecondActivity-->onResume
08-05 16:32:57.986 18760-18760/com.lwt.acitivitydemo I/TAG-->: MainActivity-->onStop
08-05 16:33:03.526 18760-18760/com.lwt.acitivitydemo I/TAG-->: SecondActivity-->onPause
08-05 16:33:03.546 18760-18760/com.lwt.acitivitydemo I/TAG-->: MainActivity-->onRestart
08-05 16:33:03.546 18760-18760/com.lwt.acitivitydemo I/TAG-->: MainActivity-->onStart
08-05 16:33:03.546 18760-18760/com.lwt.acitivitydemo I/TAG-->: MainActivity-->onResume
08-05 16:33:03.836 18760-18760/com.lwt.acitivitydemo I/TAG-->: SecondActivity-->onStop
08-05 16:33:03.836 18760-18760/com.lwt.acitivitydemo I/TAG-->: SecondActivity-->onDestory
```
#####A --> B:
A : onPause
B : onCreated
B : onStart
B : onResume
A : onStop
#####B --> A:
B : onPause
A : onRestart
A : onStart
A : onResume
B : onStop
B: onDestory