[Android] onSaveInstanceState()

原创 2013年12月06日 10:19:05

onSaveInstanceState()用以保存activity实例的状态,以便在系统kill掉该activity后需要重建该activity时可以使用onRestoreInstanceState()重建状态。注意:如果只是被stop,则无需重建,因为实例还在内存。

何时会调用?

答:最佳的答案是系统要把该activity置于“危险”状态时,即会调用。如按下home键后;按下recents键后。或直接需要recreate这个activity的时候,如由portrait mode转为landscape mode的时候。

何时不会调用?

答:在系统明确用户不需要返回该activity时,不会调用,如按下back键。

与其它回调函数的调用顺序

答:在onStop()之前,Google官方文档说有可能在onPause()之前。实际测试,一般是onPause() -> onSaveInstanceState() -> onStop()。

和onPause()有何不同

onSaveInstanceState() 用以保存每个实例的状态,所以应保存的是用以重建UI的信息。由于不是一定会调用,所以,一定不可以保存持久影响的信息,如写入数据库,相反,应使用onPause()。

使用注意点

1. 一般无需重写该回调函数,因为该方法的实现会自动保存所有用户界面控件的状态(需要给每个控件一个唯一的ID,即属性android:id)。

2. 在有自定义的控件时,或者需要保存其他不是界面空间状态的值,可重写该回调函数时,一定要注意要先调用父类的onSaveInstanceState(),再实现自己的代码,即super.onSaveInstanceState()。同理,onRestoreInstanceState()也是。

【Android 应用开发】Activity 状态保存 OnSaveInstanceState参数解析

作者 : 韩曙亮转载请著名出处 : http://blog.csdn.net/shulianghan/article/details/38297083一. 相关方法简介1. 状态保存方法示例packa...
  • han1202012
  • han1202012
  • 2014年08月11日 15:20
  • 9845

【android学习】onSaveInstanceState使用详解-之解决问题:android程序崩溃后,app异常

1,问题  1)问题一:按home键后,app后台运行,若内存紧张时,再次进入app会出现异常。  2)改变手机设置中字体大小,app再次进入出现异常。            手机切换字体后,app异...
  • SunshineTan
  • SunshineTan
  • 2017年01月01日 15:53
  • 794

Android源码解析(二十四)-->onSaveInstanceState执行时机

我们已经分析过Activity的启动流程,从中也分析了Activity的生命周期。而其中有一个生命周期方法:onSaveInstanceState方法,今天我们主要讲解一下onSaveInstance...
  • qq_23547831
  • qq_23547831
  • 2016年05月20日 22:51
  • 22719

activity中onSaveInstanceState方法调用时机详解

onSaveInstanceState什么时候调用?onSaveInstanceState()的调用时机: 在activity的一个生命周期中,onSaveInstanceState()并非一定调用...
  • Rflyee
  • Rflyee
  • 2016年03月21日 20:31
  • 4011

Android 7.0行为变化—开发者应该关注的

Android 7.0行为变化—开发者应该关注的(官网同步翻译) 版权声明:转载必须注明本文转自严振杰的博客: http://blog.yanzhenjie.com 如果想了解更多Andr...
  • Guofengpu
  • Guofengpu
  • 2016年09月19日 08:49
  • 863

重新认识Activity(一)生命周期方法(系统垃圾回收机制和onSaveInstanceState)

说来惭愧,从工作到现在,学习Android已有一年,但面对activity这个最常用的组件仍然许多疑问,遂决定好好看一遍关于activity的官方api,把遗落的知识再次整理一遍。        首...
  • u011791526
  • u011791526
  • 2016年09月14日 18:00
  • 1230

Android 学习笔记之实时保存数据-现场保护 onSaveInstanceState()

数据保存:在软件开发中我们希望保存下各个Activity数据,以实现客户数据的时时保存,达到较好的用户体验。 那么我们需要解决如下问题: 1.什么时候保存? 2.保存哪些数据? 我想保存应用产生的数据...
  • zjy_hll
  • zjy_hll
  • 2015年02月05日 10:56
  • 576

Activity的突发情况下退出恢复数据

Activity的突发情况下退出恢复数据前言在APP中除了按back键和home键,启动另一个Activity属于正常退出,其他情况下基本都属于Activity的非正常退出。但是出现这种情况后,之前e...
  • sinat_17314503
  • sinat_17314503
  • 2016年06月26日 00:57
  • 297

Android开发进阶学习整理--Activity篇

Android开发进阶学习--关于四大组件最常用的Activity的进阶学习知识整理,分为生命周期和启动模式两个模块。...
  • reakingf
  • reakingf
  • 2016年06月30日 21:06
  • 1125

android Fragment中遇到的问题

1、在fragment中使用控件,遇到空指针在fragment中使用listview,textview等通过findviewbyid遇到空指针。 错误log错误原因: 我们在onCreateVie...
  • androidxiaogang
  • androidxiaogang
  • 2016年04月18日 15:04
  • 978
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[Android] onSaveInstanceState()
举报原因:
原因补充:

(最多只允许输入30个字)