Activity的状态保存

这两个图其实说的是一个意思,具体onSaveInstanceState()这个函数什么时候会调用,在网络上搜了一下

这个第一种情况,我可以解释一下,说的是这个方法只在onResume和onPause之间才会被调用;

第二种情况是当一个劲按返回键,表示没有必要保存状态了,因为每按一次返回,就相当于调用了一次finish;

第三种情况说的是如果一个activity被覆盖是不会调用该方法的;

第四种情况说的很明白,是当旋转屏幕的时候,这个我要特殊说一下,旋转屏幕,activity是要被destroy然后在你onCreate的,所以当这个时候会调用该方法保存状态;

第五种说的是当按了home键后的情况,但是在一个网友的提示下,我尝试了一次,发现第五条说的有问题,这个方法会立即调用的。

  最后说说和这个方法正好相反的方法,既然保存了,就得有恢复吧,这个恢复很不给力,名字叫onRestoreInstanceState,他经常掉链子,所以我们经常用onCreate方法来进行恢复,他的数据保存的方式用的是bundle,类似键值对的保存方式,恩,差不多了,基本就这些,大家有意见随意提,我也是第一次理解到这里。

原文地址:https://www.cnblogs.com/xiatianyu/p/Activity_onSaveInstanceState_onRestoreInstanceState.html