软件工程4.11
onSaveInstanceState和onRestoreInstanceState
在生命周期方法中,只有onCreate()是带有参数的。这个参数就是Activity所设置的保护机制。每当Activity遇到了意外情况1被强制关闭的时候,Activity会在关闭的前一刻调用内部函数onSaveInstanceState(),我们可以通过重写这个方法,让Activity被回收的时候用bundle保存一些重要数据,bundle是一种类似字典一样的数据类型,通过key-value模式来保存数据。
onSaveInstanceState()的执行时间(如果有执行)是在onStop()之后,onDestroy()之前。
而当调用了onSaveInstanceState()之后,再次启动Activity的时候,就会调用onRestoreInstanceState(),可以发现这个参数和onCreate()参数名相同,而事实上也是如此,两者是同一个变量,也就是说无论是通过onCreate()还是onRestoreInstanceState()均能恢复数据。但是要注意的是,如果onSaveInstanceState()没有执行,那么onCreate()中的参数就会为空,因此在使用onCreate()恢复数据的时候要判断是否为空。
onRestoreInstanceState()的执行时间(如果有执行)是在onStart()之后,onResume()之前。