[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中关于onSaveInstanceState文档

大家在码代码的时候,每个activity肯定是会调用onCreate方法的,但是onCreate方法中的savedInstanceState这个参数却很少用到,经常就这么被忽略了,从其命名来看,应该是...

Android 异常java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState

java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState.

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

作者 : 韩曙亮转载请著名出处 : http://blog.csdn.net/shulianghan/article/details/38297083一. 相关方法简介1. 状态保存方法示例[java...

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

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

Android之onSaveInstanceState

在Android中,如果我们运行某个程序,然后又有其他的程序在运行,这是如果系统内存不足,先前运行的那个程序会被系统杀死。那么如何恢复之前的数据呢,此时就应该用到savedInstanceState。...

Android学习札记36:一个关于onSaveInstanceState ()方法的例子

package cn.com.sxp; import android.app.Activity; import android.os.Bundle; import android.util.Log;...
  • L_YQing
  • L_YQing
  • 2012年07月31日 17:34
  • 669

android onSaveInstanceState方法

1. onSaveInstanceState和onRestoreInstanceState基本作用     onSaveInstanceState是用来保存UI状态的,你可以使用它保存你所想保存...

Android - 解决onSaveInstanceState的Bug

解决onSaveInstanceState的Bug本文地址:http://blog.csdn.net/caroline_wendyBug:java.lang.IllegalStateException...

关于android状态保存 onSaveInstanceState

第一次写博客,如是你看到wu

Android 异常 IllegalStateException: Can not perform this action after onSaveInstanceState

做项目的时候用到fragment,在fragment快速切换的时候发生了异常:IllegalStateException: Can not perform this action after onSa...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[Android] onSaveInstanceState()
举报原因:
原因补充:

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