Activity生命周期(7个):

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)

posted @ 2016-03-04 00:01  awayaaaaaaaa  阅读(616)  评论(0编辑  收藏  举报