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

转载于:https://www.cnblogs.com/gisdream/p/3177432.html

Android Activity中状态保存机制相关推荐

  1. MTK平台Android 安全中secure boot机制

    一.相关名词解释 1.公钥:通俗来说,公钥就是公开的密钥,是私钥拥有者公开的,公钥通常用于加密会话密钥.验证数字签名,或加密可以用相应的私钥解密的数据. 2.私钥:私有的钥匙,不会公开,私钥加密又称为 ...

  2. epoll监听文件_介绍一下 Android Handler 中的 epoll 机制?

    介绍一下 Android Handler 中的 epoll 机制? 目录: IO 多路复用 select.poll.epoll 对比 epoll API epoll 使用示例 Handler 中的 e ...

  3. Dalvik/ART(ANDROID)中的多线程机制(3)

    封装任务 Message 在整个消息处理机制中,message又叫task,封装了任务携带的信息和处理该任务的handler.message的用法比较简单,这里不做总结了.但是有这么几点需要注意(待补 ...

  4. Activity具体解释(生命周期、以各种方式启动Activity、状态保存,全然退出等)...

    一.什么是Activity? 简单的说:Activity就是布满整个窗体或者悬浮于其它窗体上的交互界面.在一个应用程序中通常由多个Activity构成,都会在Manifest.xml中指定一个主的Ac ...

  5. Activity详细解释(生命周期、以各种方式启动Activity、状态保存,等完全退出)...

    一.什么是Activity? 简单的说:Activity或者悬浮于其它窗体上的交互界面. 在一个应用程序中通常由多个Activity构成.都会在Manifest.xml中指定一个主的Activity, ...

  6. Dalvik/ART(ANDROID)中的多线程机制(2)

    Android消息处理机制(二) 角色综述(回顾): (1)UI thread通常就是main thread,而Android启动程序时会替它建立一个MessageQueue. (2)当然需要一个Lo ...

  7. Dalvik/ART(ANDROID)中的多线程机制(1)

    Google参考了Windows的消息处理机制,在Android系统中实现了一套类似的消息处理机制.学习Android的消息处理机制,有几个概念(类)必须了解: 1.       Message 消息 ...

  8. Android应用中通过AIDL机制实现进程间的通讯实例

    Android中,每个应用程序都有自己的进程,当需要在不同的进程之间传递对象时,该如何实现呢?显然,Java中是不支持跨进程内存共享的,因此要传递对象,需要把对象解析成操作系统能够理解的数据格式,以达 ...

  9. Activity的状态保存

    当点击home键或程序运行过程中突然来电话等意外情况或屏幕方向改变时,会调用onSaveInstanceState()方法进行保存数据到手机硬盘上,再次运行Activity时则调用onRestoreI ...

最新文章

  1. c++ 判断文件夹是否存在,不存在则创建(可建多级目录)
  2. thymeleaf 学习笔记
  3. C 语言中的内存分析
  4. 鼠标右键 移动选定的文件夹到指定位置_iRightMouse:一款免费Mac鼠标右键增强神器...
  5. [JavaWeb-HTTP]HTTP_请求消息_请求头请求体
  6. IIS不能发布asp.net 应用程序
  7. LeetCode 1293. 网格中的最短路径(DP/BFS)
  8. Java面向对象设计原则
  9. P1629 邮递员送信(正反向建图 or 暴力)
  10. 钉钉机器人自动回复消息_如何利用闲鱼助手,真正实现全自动消息回复,做到效率最大化...
  11. Hue添加Spark notebook
  12. PHP范例完全自学手册pdf
  13. HDU1757(矩阵快速幂+简单的矩阵构造)
  14. html查看蛋白质,怎么查询蛋白质的全部信息-- UniProKB数据库
  15. 计算机术语pc是什么意思,pc_pc是什么意思-太平洋IT百科
  16. Java 提取PDF图片(pdfbox)Extract PDF document images
  17. Linux安装expect
  18. 不可注册为ActiveX控件
  19. makefile 的error looser throw specifier for ‘virtual ExceptionWithIflag::~ExceptionWithIflag
  20. verilog学习笔记- 10)按键控制 LED 灯实验

热门文章

  1. 【Tensorflow】深度学习实战03——Tensorflow实现AlexNet
  2. leetcode - 221. 最大正方形
  3. C++/C--二分查找之lower_bound( )和upper_bound( )【转载】
  4. Opencv--Mat类型ROI的设置
  5. Unity5 Sprite 图集打包 AssetBundle 更新探索
  6. 设计模式学习笔记——建造者(Builder)模式
  7. cmd指令大全指令_汇编语言常用指令大全
  8. 上海师范大学计算机技术考研分数线,上海师范大学2019年考研复试分数线已公布...
  9. 【tool】kali linux关于postgresql的使用
  10. 计算机组成相关论文,计算机组成与结构课程论文.docx