1 第一种:比如点击按钮弹出一个Toast,或者对话框,这个时候是activity生命周期是不会变化的。
运行结果如下
2 第二种:跳转到另外一个透明的activity,这个时候ActivityA 会调用onPause();ActivityB会调用onCreate(),onStart(),onResume()方法。
运行结果如下:
3 第三种:当切换横竖屏的时候,会重写创建走一遍生命流程,并且会调用onSaveInstanceState()方法。来保存当前的生命周期状态。
运行结果如下。
我这边横竖屏切换都是只调用走一遍生命流程,并没有像网上说的那样不会出现网上说的横屏切回竖屏时,生命周期执行两遍的问题。具体我也没搞清楚。
若是不想在在切换的时候重新执行一遍生命周期的话,可以设置configChanged的属性。
在sdkl版本13之前只需要设置orientation就可以了,当sdk版本大于13的时候,就需要设置screenSize。
android:configChanges="orientation|screenSize"
运行结果
这个时候不会再重新执行onCreate()— onStart()—onResume()这样的方法,而是执行了onConfigurationChanged()方法。
4 当因为系统的内存不足而导致activity销毁的话,这个时候只能通过重新创建,并且这个时候系统会调用onSaveInstanceState()和onRestroeInstanceState()方法来恢复activity的状态。
activity的被销毁的优先级有:
最后被销毁的是正在前台与用户交互的activity,其次是处于onPause()状态的activity,最容易被销毁的是处于onstop()状态的activity,就是处于后台的activity.