欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

onSaveInstanceState 和 onRestoreInstanceState

程序员文章站 2022-11-01 16:00:25
1.onSaveInstanceState 和 onRestoreInstanceState基本作用:onSaveInstanceState是用来保存UI状态的,可以在activity被杀死之前保存要保留的数据,一般在onStop或者onPause之前触发;onRestoreInstanceState是用来恢复状态的,......

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方法参数中;

 

 

 

 

 

 

本文地址:https://blog.csdn.net/emmmsuperdan/article/details/112527314