activity是安卓的四大组件之一,这篇文章带你们一块儿总结生命周期的各个方法。我没有贴一些打印log的代码,你们能够本身去尝试,看看这个总结是否正确,若是错误,提交评论便可。android
7、activityA按home键退居后台:同2的流程,从home返回到activityA,同4的流程;函数
onWindowFocusChanged:
在Activity窗口得到或失去焦点时被调用而且当Activity被建立时是在onResume以后被调用,当Activity被覆盖或者退居后台或者当前Activity退出时,它是在onPause以后被调用(在这个方法中能够view已经绘制完成,能够获取view的宽高等属性)cdn
onSaveInstanceState:
(1)在Activity被覆盖或退居后台以后,系统资源不足将其杀死,此方法会被调用;(2)在用户改变屏幕方向时,此方法会被调用;(3)在当前Activity跳转到其余Activity或者按Home键回到主屏,自身退居后台时,此方法会被调用。第一种状况咱们没法保证何时发生,系统根据资源紧张程度去调度;第二种是屏幕翻转方向时,系统先销毁当前的Activity,而后再重建一个新的,调用此方法时,咱们能够保存一些临时数据;第三种状况系统调用此方法是为了保存当前窗口各个View组件的状态。onSaveInstanceState的调用顺序是在onstop以前。(android3.0以前:在onPause以前调用,在3.0以后,在onPause以后调用)blog
onRestoreInstanceState:
有的人说这个方法和onSaveInstanceState是一对,其实否则,(1)在Activity被覆盖或退居后台以后,系统资源不足将其杀死,而后用户又回到了此Activity,此方法会被调用;(2)在用户改变屏幕方向时,重建的过程当中,此方法会被调用。咱们能够重写此方法,以即可以恢复一些临时数据。onRestoreInstanceState的调用顺序是在onStart以后。(在当前Activity跳转到其余Activity或者按Home键回到主屏,自身退居后台时:onRestoreInstanceState不会调用,可是onSaveInstanceState会调用,这里就是区别)生命周期
当Activity被系统撤销后从新创建时,保存以及恢复数据的函数调用顺序是:onSaveInstanceState(保存数据)-->onCreate(恢复数据allstate)-->onRestoryInstanceState(恢复数据HierarchyState)。资源
若是要取消切换屏幕方法重建activity,能够配置configChanges属性:
android:configChanges="keyboardHidden|orientation|screenSize(当支持的最小sdk版本大于android4.0须要设置这个属性)"it