android activity的状态保存机制
2014-12-03 10:08
363 查看
在Activity中保存用户的当前操作状态,如输入框中的文本,一般情况下载按了home键后,重新进入文本框中的东西会丢下,所以我们要保存当前页面信息,如在写短信的时候接到一个电话,那么当你接电话的时候短信界面就会别隐藏,那么我们希望接完电话后可以继续编辑短信,就需要保存状态。使用办法:
重写Activity中的onSaveInstanceState(Bundle outState)和onRestoreInstanceState(Bundle savedInstanceState)方法,步骤为:(1)在离开页面的时候用onSaveInstanceState中的outState可以保存你所需要的值,(2)在重新回到该页面的时候可以使用onRestoreInstanceState从saveInstanceState中获取保存过得值来重新初始化界面。
从android的API文档可以知道,onSaveInstanceState是在OnStop之前执行,onRestoreInstanceState在OnStart后执行,因此如果是Activity销毁过后的话再启动数据就没有保存了,即在finish或用户按下Back后,该功能就失效了。一般用在当前Activity被其他Activity覆盖和按Home键后重新进入该Activity的时候。
实例代码如下:
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
// save the current data, for instance when changing screen orientation
outState.putSerializable("dataset", mDataset);
outState.putSerializable("renderer", mRenderer);
}
@Override
protected void onRestoreInstanceState(Bundle savedState) {
super.onRestoreInstanceState(savedState);
// restore the current data, for instance when changing the screen
// orientation
mDataset = (XYMultipleSeriesDataset) savedState.getSerializable("dataset");
mRenderer = (XYMultipleSeriesRenderer) savedState.getSerializable("renderer");
}
重写Activity中的onSaveInstanceState(Bundle outState)和onRestoreInstanceState(Bundle savedInstanceState)方法,步骤为:(1)在离开页面的时候用onSaveInstanceState中的outState可以保存你所需要的值,(2)在重新回到该页面的时候可以使用onRestoreInstanceState从saveInstanceState中获取保存过得值来重新初始化界面。
从android的API文档可以知道,onSaveInstanceState是在OnStop之前执行,onRestoreInstanceState在OnStart后执行,因此如果是Activity销毁过后的话再启动数据就没有保存了,即在finish或用户按下Back后,该功能就失效了。一般用在当前Activity被其他Activity覆盖和按Home键后重新进入该Activity的时候。
实例代码如下:
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
// save the current data, for instance when changing screen orientation
outState.putSerializable("dataset", mDataset);
outState.putSerializable("renderer", mRenderer);
}
@Override
protected void onRestoreInstanceState(Bundle savedState) {
super.onRestoreInstanceState(savedState);
// restore the current data, for instance when changing the screen
// orientation
mDataset = (XYMultipleSeriesDataset) savedState.getSerializable("dataset");
mRenderer = (XYMultipleSeriesRenderer) savedState.getSerializable("renderer");
}
相关文章推荐
- android activity详解三:保存activity的状态
- android activity详解四:保存activity的状态的更多事项
- Android保存和恢复activity状态数据
- android保存和恢复activity的状态数据
- Android 组件系列-----Activity保存状态
- android activity详解四:保存activity的状态的更多事项
- android中的activity的状态的保存:
- android笔记--保存和恢复activity的状态数据
- 【activity】android activity详解三:保存activity的状态
- 关于Android中保存activity的状态的几点学习笔记
- android开发_Intent高级学习(保存Activity状态)
- Android中Activity状态的保存和恢复:onSaveInstanceState和onRestoreInstanceState方法
- android activity详解四:保存activity的状态的更多事项
- Android保存Activity的状态
- android activity详解三:保存activity的状态
- Android深入浅出系列课程---Lesson6 AAF110503_Activity状态保存
- Activity生命机制与状态保存机制
- Android 任务和回退堆栈---保存Activity状态
- Android 组件系列-----Activity保存状态
- android笔记--保存和恢复activity的状态数据