activity状态保存讲解2
2015-02-18 13:14
183 查看
在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");
}
相关文章推荐
- activity状态保存实例讲解过程
- activity状态保存讲解一
- activity状态保存讲解三
- activity状态保存讲解四
- 52_保存Activity的状态
- Activity中保存状态和数据
- Activity保存与恢复状态。。。点击事件的方法。。关闭Activity
- Android 组件系列-----Activity保存状态
- android 四大组件Acitivity (2) 保存activity状态 Fragment
- Activity中的状态保存与恢复,这些是你应该知道的
- 保存Activity的状态
- Activity的状态保存
- Android课程---Activity中保存和恢复用户状态
- 利用onSaveInstanceState()方法保存Activity状态
- 保存/恢复 Activity 和 Fragment 状态的最佳实
- android activity详解三:保存activity的状态
- Activity具体解释(生命周期、以各种方式启动Activity、状态保存,全然退出等)
- 使用ActivityGroup时,如何保存Activity状态、如何使用子Activity的Menu?
- Activity详细解释(生命周期、以各种方式启动Activity、状态保存,等完全退出)
- Android之Activity状态的保存和恢复