您的位置:首页 > 移动开发 > Android开发

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");

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: