位置: 编程技术 - 正文

onSaveInstanceState和onRestoreInstanceState触发的时机

编辑:rootadmin
当某个activity变得“容易”被系统销毁时,该activity的onSaveInstanceState就会被执行,除非该activity是被用户主动销毁的,例如当用户按BACK键的时候。 注意上面的双引号,何为“容易”?言下之意就是该activity还没有被销毁,而仅仅是一种可能性。这种可能性有哪些?通过重写一个activity的所有生命周期的onXXX方法,包括onSaveInstanceState和onRestoreInstanceState方法,我们可以清楚地知道当某个activity(假定为activity A)显示在当前task的最上层时,其onSaveInstanceState方法会在什么时候被执行,有这么几种情况: 1、当用户按下HOME键时。 这是显而易见的,系统不知道你按下HOME后要运行多少其他的程序,自然也不知道activity A是否会被销毁,故系统会调用onSaveInstanceState,让用户有机会保存某些非永久性的数据。以下几种情况的分析都遵循该原则 2、长按HOME键,选择运行其他的程序时。 3、按下电源按键(关闭屏幕显示)时。 4、从activity A中启动一个新的activity时。 5、屏幕方向切换时,例如从竖屏切换到横屏时。 在屏幕切换之前,系统会销毁activity A,在屏幕切换之后系统又会自动地创建activity A,所以onSaveInstanceState一定会被执行。 总而言之,onSaveInstanceState的调用遵循一个重要原则,即当系统“未经你许可”时销毁了你的activity,则onSaveInstanceState会被系统调用,这是系统的责任,因为它必须要提供一个机会让你保存你的数据(当然你不保存那就随便你了)。 至于onRestoreInstanceState方法,需要注意的是,onSaveInstanceState方法和onRestoreInstanceState方法“不一定”是成对的被调用的,onRestoreInstanceState被调用的前提是,activity A“确实”被系统销毁了,而如果仅仅是停留在有这种可能性的情况下,则该方法不会被调用,例如,当正在显示activity A的时候,用户按下HOME键回到主界面,然后用户紧接着又返回到activity A,这种情况下activity A一般不会因为内存的原因被系统销毁,故activity A的onRestoreInstanceState方法不会被执行。

推荐整理分享onSaveInstanceState和onRestoreInstanceState触发的时机,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

onSaveInstanceState和onRestoreInstanceState触发的时机

另外,onRestoreInstanceState的bundle参数也会传递到onCreate方法中,你也可以选择在onCreate方法中做数据还原。

Android Volley框架的使用(三) Volley框架的学习马上就可以杀青了,哈哈,有木有点小激动呢,之所以将这个框架分成三篇来写,而且涉及的细节比较多,是因为考虑到后面还要学习

欢迎使用CSDN-markdown编辑器 Android项目实训记录(一)学校里来了某某IT培训机构(为了避免广告嫌疑,就不曝名字了)的讲师来为我们进行实训,对于我这种从未接触过正规项目

自定义ListView使用Volley获取数据 这是作为Volley框架使用的练习,如果对Volley框架的使用还不太熟悉,建议先看前三篇文章:AndroidVolley的使用(一)AndroidVolley的使用(二)AndroidVolley的

标签: onSaveInstanceState和onRestoreInstanceState触发的时机

本文链接地址:https://www.jiuchutong.com/biancheng/382294.html 转载请保留说明!

上一篇:Android之Adapter用法总结(安卓中adapter)

下一篇:Android Volley框架的使用(三)(androidmvvm框架)

  • 公司出售房产缴纳税金如何凭证
  • 差额征税的税率怎么计算
  • 没有增值税专用发票开具证明
  • 出售固定资产简易计税账务处理
  • 差旅费是计入
  • 预付软件款的分录
  • 开发票要多交费正常吗?
  • 个人转让住房要交哪些税费?
  • 厂房无偿租赁合同
  • 费用确认的时点
  • 死账呆账的处理程序
  • 新个税聘用退休后怎么算
  • 电商平台收取会员费吗
  • 个人账户转公司账户需要交税吗
  • 电子增值普通发票经营范围呢免费吗
  • 客户要开票资料干嘛
  • 公司账户境外汇款
  • 企业获得利润
  • 餐听发票可以开专用发票吗?
  • 固定资产大修理怎么界定
  • 免税增值税发票怎么做账
  • 收到境外公司服务费
  • 查账征收企业所得税季报怎么填
  • 服务业成本会计分析
  • 专项扣除项目有上限吗
  • 投资收益科目的借贷方向
  • 公司之间债务转让合法吗
  • 如何在 Windows 11 上打开 APK 文件
  • PHP:apache_response_headers()的用法_Apache函数
  • 小规模企业有收入吗
  • 应收账款周转天数减少说明什么
  • 开展党建系列活动
  • 物资销售经营范围
  • apkpure 安全
  • Python之ImportError: DLL load failed: 找不到指定的模块解决方案
  • 外汇差额核销条件
  • 西班牙的藏红花好不好
  • 报销差旅费会计凭证
  • 广告费与业务宣传费范围
  • 激光slam入门教程
  • 简易计税适用什么类型企业
  • 未分配利润的核算内容
  • 如何更改电子税务局办税人员
  • 帝国cms吧
  • 小规模纳税人营业额
  • 附加税多计提了怎么调整
  • mysql恢复备份文件
  • 公司找个人干活
  • 公司注销前怎么平账需要提前多久
  • 无形资产减值准备借贷方向增减
  • 非货币性资产含义
  • 核定征收怎么收
  • 创业带动就业补贴是给企业的还是员工的
  • 公司的三证合一是什么
  • mysql random函数
  • 用Win7系统的Syskey命令来设置系统的启动密码
  • windows server 2008 r2怎么用u盘启动
  • 使用灭火器时要对准火焰的什么部位喷射
  • 上网本安装win7
  • 开机时显示
  • windows的使用
  • win10怎么关闭定时断网功能
  • 微软停止对xp的操作
  • centos简易安装
  • linux特殊权限命令
  • opengl纹理错误变成条纹
  • html上拉加载更多
  • perl怎么把字符串变为数字
  • JAVASCRIPT IE 与 FF 中兼容写法记录
  • Python分析学校四六级过关情况
  • js检测类型的方法
  • javascript的dom
  • js修改url
  • js怎么定义类
  • python 遍历数组
  • 开发票收多少税点?
  • 河南12306区号
  • 北京摇号摇中了能过户吗
  • 地税局科员干什么的
  • 税务局科员是什么职业
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设