位置: 编程技术 - 正文

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框架)

  • 收取罚款
  • 个体工商户核定征收
  • 记账错误怎么办
  • 发票商品类别有哪几种
  • 进项税额转出税率
  • 留抵税额账上比申报表多280
  • 换出交易性金融资产入账价值
  • 如何设置处理器个数如何设置显示器超频
  • 收取外部客户电费如何结转成本
  • 管理服务费入什么科目
  • 销售固定资产可以开专票吗
  • 金税盘开票时间不对怎么办
  • 什么叫社保人员
  • 红冲发票地址不一样可以吗
  • 法人实名认证后为什么查不到名下公司
  • 外籍人士可以回国吗
  • 对赌协议的账务处理流程
  • 公司购买五金用交税吗
  • 公司支付给法院要交税吗
  • 贸易型企业怎么做账
  • 临时文件夹在哪个位置
  • 信息化投入费用包括哪些
  • 票据背书怎么做账
  • 增值税附加怎么入账
  • 新版Win10中,如何仅修改部分文本大小
  • 鸿蒙系统 3.0
  • 退回多收款项开具发票原发票需要退回吗
  • win10创意者更新易升
  • 智能路由器五个灯一直闪
  • php实现简单的登录验证
  • php保存数据
  • phpmyadmin无法登陆mysql数据库
  • 城建税退回与不退税区别
  • js读取本地excel
  • 注册资本认缴可以增加吗
  • transformer add norm
  • vue网上商城项目
  • 刷题笔贴吧
  • 营业收入为什么不包括营业外收入
  • 年度财务报表分为哪几类
  • SQLite3中的日期时间函数使用小结
  • 影响年度损益的金额怎么算
  • 企业购买理财产品收益要交税吗
  • 关于发票的相关法律
  • 预付房租计入长期待摊费用吗
  • SQL Server性能优化工具Profiler
  • 改变记帐方式的原因
  • 外币收款怎么做账
  • 单位垫付职工个税如何记账
  • 存款基准利率是不是利息
  • 房地产公司车位出租会计分录
  • 空调抵扣进项税
  • 厂家核销费用直接扣除吗
  • 损益平准金结转
  • 会计准则 职工福利
  • mysql无法配置
  • mysql 5.7启动
  • innodb_trx表
  • 深入Windows 第七版 第二部分
  • win10系统无法打开这个应用
  • window出现问题
  • winxp使用到什么时候
  • win7系统鼠标右键菜单设置
  • Win7系统安装方法
  • javascript的常用数据类型
  • bat批量命名
  • jQuery 判断JSON
  • 爬虫爬取微博
  • Node.js微信公众号开发
  • Python中强大的命令行库click入门教程
  • 零基础学JavaScript
  • javascript原型链详解
  • android开源小项目
  • jquery滚动条滚动到指定位置
  • 税务局举报管理办法
  • 江苏省税务厅电话
  • 重庆办理4050社保需要什么材料
  • 印花税怎么计提和结转
  • 土地增值税核定征收尾盘销售
  • 下列哪些表述是正确的( )
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设