首页 > 代码库 > onRestoreInstanceState和onSaveInstanceState

onRestoreInstanceState和onSaveInstanceState

测试方式很简单,只要想象一下就明白了:


经测试,onSaveInstanceState会被调用的条件是:

条件一.从当前activityA启动ActivityB时,在onPause之后onStop之前调用,

条件二.当前activtiy未被主动销毁(比如调用finish()),而是被压入栈中。


经测试:onRestoreInstanceState调用的条件

onSaveInstanceState被调用是为了保存数据,然而这并不意味着onRestoreInstanceState会被调用,那么,什么时候会被调用呢。

??????前面说过,当前ActivityA启动了ActivityB时????onSaveInstanceState会被调用,及状态被保存了,而且Activity被压在栈中了,只有ActivityB活跃着,据此暗示,当ActivityB发生意外时ActivityA中的onRestoreInstanceState。??

??

测试结果说明了这一点,但是,ActivityB的意外事故严重性也决定了ActivityA中的onRestoreInstanceState,意外越严重的话,app直接闪退,因此不会调用.??????

所以得出如下条件:

条件一:顶层Activity发生警告性,低级别异常,未导致app退出

条件二:activity必须违背kill掉








onRestoreInstanceState和onSaveInstanceState