onSaveInstanceState函数用于保存Activity的状态信息(UI控件的状态信息)和用户保存的信息。
- onSaveInstanceState函数调用时间
-
当用户按下HOME键时
-
长按HOME键,选择运行其他的程序时
-
按下电源按键(关闭屏幕显示)时
-
从activity A中启动一个新的activity时
-
屏幕方向切换时,例如从竖屏切换到横屏时
当系统销毁一个Activity的时候,onSaveInstanceState方法会被调用,如内存不足、用户直接按Home键等,当如果是用户按返回键,则不会调用onSaveInstanceState方法,因为系统觉得没必要保存数据。
如果我们没有复写onSaveInstanceState()方法, 此方法的默认实现会自动保存activity中的某些状态数据, 比如activity中各种UI控件的状态。
如果我们需要重写onSaveInstanceState()方法, 一般会在第一行代码中调用该方法的默认实现:super.onSaveInstanceState(outState)。
-
存储数据和恢复数据原理
屏幕方向切换时,Activity被系统销毁后重新建立,此