安卓 onSaveInstanceState()

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/djshichaoren/article/details/82660330

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

猜你喜欢

转载自blog.csdn.net/djshichaoren/article/details/82660330
今日推荐