安卓 onSaveInstanceState()

1. 重写onSaveInstanceState函数,在Activity destroy之前保存信息

2. onCreate(Bundle savedInstanceState)方法中的参数savedInstanceState就是之前保存的信息

问:在什么时候启动Activity savedInstanceState才不为null呢?

答:savedInstanceState是在恢复Activity 实例的时候用的。比如系统new 了一个Activity实例,但是由于屏幕旋转、内存不足等原因,系统kill掉了这个Activity。等到用户再次回到这个界面时,系统就需要恢复界面之前保存的内容。如果用户是按了返回键将Activity销毁了,也就是下次启动的实例是新创建的了,那么系统便不会恢复之前的Activity实例的内容了。也就是savedInstanceState参数为null了。

问:onSaveInstanceState函数保存的信息是存储在内存还是存储在硬盘呢?

答:存储在内存。这个时候系统还是期待着这个Activity的实例会恢复。因为是由于系统的原因将它kill掉的。比如旋转屏幕就会导致Activity实例的kill与重建,这时Activity的信息肯定是在内存的,总不能存到外存再取出来吧。

 

参考文献:

【1】https://developer.android.com/training/basics/activity-lifecycle/recreating?hl=zh-cn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值