Android开发中Activity状态的保存与恢复
2015-03-03 18:15
369 查看
当置于后台的Activity因内存紧张被系统自动回收的时候,再次启动它的话他会重新调用onCretae()从而丢失了之前置于后台前的状态。
这时候就要重写Activity的两个方法来保存和恢复状态,具体用途举个例子:你正在编辑短信,这时候来了一个电话,打完电话回到短信界面,
短信刚好被系统回收重启,这时原先编辑了一半的内容总不能丢失了吧,这样影响用户体验。所以解决办法如下:
这时候就要重写Activity的两个方法来保存和恢复状态,具体用途举个例子:你正在编辑短信,这时候来了一个电话,打完电话回到短信界面,
短信刚好被系统回收重启,这时原先编辑了一半的内容总不能丢失了吧,这样影响用户体验。所以解决办法如下:
private static final String INSTANCE_STATUS="instance_status";//父类状态 private static final String STATUS_ALPHA="status_alpha";//用户自定义状态 @Override protected Parcelable onSaveInstanceState(){ Bundle bundle=new Bundle();//新建一个bundle bundle.putParcelable(INSTANCE_STATUS,super.onSaveInstanceState());//将父类状态保存到bundle bundle.putFloat(STATUS_ALPHA,mAlpha);//将用户数据保存到bundle return bundle;//返回bundle } @Override protected void onRestoreInstanceState(Parcelable state){ if(state instanceof Bundle){//判断当前接收的状态是不是Bundle的子类 Bundle bundle=(Bundle)state;//类型强制转换 mAlpha=bundle.getFloat(STATUS_ALPHA);//取出用户自定义状态 super.onRestoreInstanceState(bundle.getParcelabel(INSTANCE_STATUS));//恢复父类状态 return;//这里要返回,不然if内容执行两次 } super.onRestoreInstanceState(state); }
相关文章推荐
- Android开发之保存和恢复Activity的状态与数据
- 【Android 应用开发】Activity 状态保存 OnSaveInstanceState参数解析
- Android 保存和恢复activity的状态数据
- android笔记--保存和恢复activity的状态数据
- Android保存和恢复activity状态数据
- 【Android 应用开发】Activity 状态保存 OnSaveInstanceState参数解析
- Android中Activity状态的保存和恢复:onSaveInstanceState和onRestoreInstanceState方法
- 实例探究Android开发中Fragment状态的保存与恢复方法
- Android课程---Activity中保存和恢复用户状态
- saveInstallState参数使用详解(android activity状态保存和恢复)
- android笔记--保存和恢复activity的状态数据
- android笔记--保存和恢复activity的状态数据
- Android开发_如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?
- android笔记--保存和恢复activity的状态数据
- saveInstallState参数使用详解(android activity状态保存和恢复)
- Android开发之InstanceState详解(转)---利用其保存Activity状态
- android笔记--保存和恢复activity的状态数据
- android笔记--保存和恢复activity的状态数据
- 【转】android笔记--保存和恢复activity的状态数据
- 【Android 应用开发】Activity 状态保存 OnSaveInstanceState參数解析