onSaveInstanceState() 你了解多少

这张图片大家并不陌生,你看懂了么,不要因为英文不好就不看api文档,只要认真看,不懂的就百度,相信很快你就习惯看英文的api文档了

左边的大致的流程:app内存不足,这时候,就会销毁不可见的activity,这时候开始调用onSaveInstanceState(),保存activity的状态,这个状态通过onCreate()或者onRestoreInstanceStante()获取到

右边的大致的流程:不可见的activity没有被销毁掉,此时用户重新进入activity,这是调用生命周期中的onRestart(),重新启动activity(并没有新建activity),那么就不需要保存activity的状态。

这里主要有几点,就是onSaveInstanceState使用的时机,在activity不是人为finish掉的情况下,有以下几点:

1.按home键的时候,系统不知道activity是否被销毁,让用户保存非永久性数据。

2.从一个activity启动新的activity的时候

3.横竖屏的切换(因为这里会重新创建activity,类似2)

4.按下电源键(屏幕显示关闭时)

总之,调用onSaveInstanceSate的方法,遵守这样的规则,就是activity在未经你许可的情况下,被销毁掉,这时候系统就有责任调用它,提供一个保存非永久性数据的机会。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值