谈谈何时要用到当前Activity状态保存:
利用Activity 的声明周期 和 Preference来完成状态保存
第一种 :如果用户在使用软件过程中,输入了部分数据,但是在突然间的屏幕旋转(由横屏切换到竖屏)刚才输入的数据就会消失,这个时候就需要我们去使用Activity的状态保存去保存用户输入的数据。
这里用到了实例化Activity的一些方法 : onSaveInstanceState & o'nCreate or onRestoreInstanceState 这三个方法。
由于在没有任何设置的情况下,android手机在由
竖屏切横屏,销毁当前Activity之后,创建一个新Activity实例。
横屏切竖屏,销毁当前Activity之后,创建一个新Activity实例,新的Activity实例很快就被销毁,接着又会创建一个新Activity实例。如果只希望创建一个实例,可以配置android:configChanges="orientation"
默认情况下,当“屏幕方向”或“键盘显示隐藏” 变化时都会销毁当前Activity,创建新的Activity。如果不希望重新创建Activity实例,可以按如下配置Activity:
<activity android:name=".MainActivity" android:configChanges="keyboardHidden|orientation">
上面的android:configChanges属性指定了要捕获“屏幕方向”和“键盘显示隐藏”变化,当捕获到这些变化后会调用Activity的onConfigurationChanged()方法。
系统回收当前Activity之间会调用 onSaveInstanceState ;当按 back 和 home两个键不会调用这个方法
第二种:按了 home or back键 再回来
可以在 onPause()等一些方法中保存在Preference中,在onResume()中可以取回