1.onSaveInstanceState 和 onRestoreInstanceState基本作用:
onSaveInstanceState是用来保存UI状态的,可以在activity被杀死之前保存要保留的数据(Bundle putBundle等方法),一般在onStop或者onPause之前触发;
onRestoreInstanceState是用来恢复状态的,可以用来在activity异常结束后重启恢复数据,恢复的数据放在onRestoreInstanceState或者onCreate方法参数中的bundle内;
2.onSaveInstanceState调用时机:
当activity存在被销毁的可能性时 而非用户主动销毁(按下BackPressed键则不调用),就会自动调用这个方法用来存一些关键数据(但不能持久化保存数据),持久化应放在onPause中处理会更佳:
1.从一个activity跳转到另一个activity
2.用户按下Home键
3.长按home切最近任务task
4.锁屏
5.系统属性改变,但又没有在配置清单文件中声明,生命周期重走,也会调用;
3.onRestoreInstanceState调用时机:
注意:onSaveInstanceState和onRestoreInstanceState不一定是成双成对调用的;
onRestoreInstanceState是在acitivity确实在以上几种意外情况销毁的情况下,才会调用来恢复数据的,恢复的Bundle数据出现在onRestoreInstanceState或onCreate方法参数中;