Activity生命周期我们也算是老生常谈了,不过如果没有办法很好的理解声明周期的调用,我们会在开发中遇到很多的问题。所以这里我进行一下相关的总结方便大家查阅。
1.首先我先总结一下具体Activity有哪些生命周期,并且都是什么时候调用
onCreate:创建页面。把页面上的各个元素加载到内存中。
onStart:开始页面。把页面显示在屏幕上。
onResume:恢复页面。让页面在屏幕上活动起来,例如开启动画、开始任务等。
onPause:暂停页面。让页面在屏幕上的动作停下来。
onStop:停止页面。把页面从屏幕上撤下来。
onDestroy:销毁页面。把页面从内存中清除掉。
onRestart:重启页面。重新加载内存中的页面数据。
2.接着我们总结一下几种情况下生命周期的回调顺序
打开一个页面:本页面onCreate → onStart → onResume
从一个页面跳入另一个页面:上一个页面onPause → 下一个页面onCreate → onStart → onResume → 上一个页面onStop
从一个页面返回上一个页面顺序:下一个页面onPause →上一个页面onRestart → onStart → onResume → 下一个页面onStop → onDestroy
横竖屏:无论是竖屏切换到横屏,还是横屏切换到竖屏,都是原屏幕的页面从onPause 到 onStop 再到 onDestroy 一路销毁,然后新屏幕的页面从onCreate到onStart再到onResume一路创建而来。
按HOME健后又返回APP:onCreate → onStart → onResume → onPause → onStop → onRestart → onStart → onResume
onActivityResult 和 onRestart调用顺序:先调用onActivityResult再调用onRestart