你将了解:
- 什么情况下会调用A的onSaveInstanceState()方法
- 怎么使用onSaveInstanceState()进行数据的保存(步骤)
- onRestoreInstanceState (Bundle outState)的使用
本篇博文规则:
A代表Activity
在平时的开发中,有时候这样的当Aa进入Ab的时候,可能系统把Aa回收掉(思考什么情况下这种情况会出现),
再按back执行的不是Aa的onRestart而是onCreate(),Aa被重新创建一次,这时候Aa中的临时数据和状态可能被丢失,怎么保存呢onSaveInstanceState()回调登场。
此方法是A的一个回调方法,一定在A被回收之前调用,方法中有一个Bundle参数,putString(),putInt()需要传入2个参数,下面说一下使用方式和步骤
一、调用A的onSaveInstanceState()方法情景
总的来说当A容易(一种可能性未被销毁)被系统销毁的时候会调用此方法,,特殊A被用户主动销毁就不会执行eg:用户按back键
当A位于栈顶的时候,调用场景如下:
下面场景的分析原则:
以按HOME为列
系统不知道你按下HOME要运行多少其他程序,也不知道A是否会销毁,所以会调用此方法,让用户有机会保存某些非永久性的数据
- 按HOME键时
- 长按HOME选择其他运用程序
- 按下电源键关闭屏幕时候。
- 从A启动一个新的A时
- 屏幕方向切换时