今天来回顾一下Activity的生命周期调用。
![](https://img.haomeiwen.com/i2144108/1c95685850463ba4.png)
上面图片展示了正常情况下Activity从创建到销毁的整个基本生命周期。
今天主要探讨一下Activity几种情况下的生命周期:
1. Activity Demo1 跳到Activity Demo2:
Intent intent =newIntent(this, ActivityDemo2Activity.class);
startActivity(intent);
运行结果:
![](https://img.haomeiwen.com/i2144108/3a6dd79a1dac3bf6.png)
注意到没有? onSaveInstanceState方法被调用了。
2. 按Back键返回上一个Activity:
运行结果:
![](https://img.haomeiwen.com/i2144108/db8e3efeac249ec2.png)
此时, onSaveInstanceState方法没有被调用。
3. 按Home键回到桌面:
运行结果:
![](https://img.haomeiwen.com/i2144108/01bda2a810fec472.png)
onSaveInstanceState方法也被调用了。
4. Activity主动finish:
运行结果:
![](https://img.haomeiwen.com/i2144108/669dcbf91a810ab1.png)
5. 切换屏幕方向:
![](https://img.haomeiwen.com/i2144108/1aa818484abb6e78.png)
运行结果:
![](https://img.haomeiwen.com/i2144108/f1e388ac8d5286e4.png)
![](https://img.haomeiwen.com/i2144108/b9df0bfc79d68c2c.png)
看到区别了吗? 如果在Manifest文件中对 Activity 指定了configChanges中包含orientation|keyboard|keyboardHidden|screenSize|, 则切换屏幕方向时不会重建Activity, 而是调用onConfigurationChanged 方法。
以上, 总结了一些情况下Activity的生命周期调用。
网友评论