1.onCreate;
2.onStart;
3.onResume;
4.onPause;
5.onStop;
6.onRestart;
7.onDestory;
两种特殊情况:a-----Pause和Resumed: 当用户在Paused状态按返回键,会直接进入Resumed;
b-----Stopped和Resumed: 当用户在Stopped状态按返回键,会去执行Restart(),在进入Resumed;
定义生命周期的优点:①当用户接一个电话或切换到另一个程序不会崩溃;
②当用户后台运行程序时不会销毁有价值的系统资源;
③当用户离开再返回你的应用时不会丢失用户的进程;
④当手机屏幕进行横竖屏切换的时候不会崩溃或者丢掉用户的进程;
现场保护(保存状态):
一、为什么要做现场保护:
1、Activity在生命周期中的Paused状态或Stoped状态下,内存空间紧张的时,系统很可能会干掉Activity,如果用户通过导航再返回刚被干掉的Activity,系统只能创建新的Activity,如果之前的Activity界面已有用户录入信息,如用户名和密码等,而在新的Activity中则没有了,这种时间就需要做现场保护
2、横屏与竖屏切换时,生命周期变化如下:
onPause()->onStop()->onDestroy()->onCreate()->onStart()->onResume()
如果当前窗口中已录入部分信息,而用户不小心切换横竖屏,此时需要做现场保护。
///-------
onSaveInstanceState(Bundle)--->调用时机:
(1)、当用户按下HOME键时。
(2)、长按HOME键,选择运行其他的程序时。
(3)、按下电源按键(关闭屏幕显示)时。
(4)、从activity A中启动一个新的activity时。
(5)、屏幕方向切换时,例如从竖屏切换到横屏时。
现场恢复时,二者任选其一:
onCreate(Bundle);
onRestoreInstanceState(Bundle)