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)

转载于:https://www.cnblogs.com/aWay01/p/5240612.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值