位置: 编程技术 - 正文

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

  • 公司购买股票如何做账
  • 收购农副产品怎么做账
  • 建筑劳务公司的工资计入什么科目
  • 调减加计抵减额会计分录
  • 股权投资收回的账务处理
  • 员工意外险费用
  • 建行网银转账复核流程
  • 对外投资企业利润回国意愿的政策建议
  • 应付账款坏账处理分录怎么写
  • 支付劳务收入怎么做账
  • 房地产开发成本费用明细表
  • 医疗器械销售初次拜访话术
  • 关联企业无偿使用土地
  • 服装批发零售交什么税
  • 加速折旧的例子
  • 电子发票是专用发票吗
  • 增值税小规模纳税人申报表填表说明
  • 开了发票必须记收入吗
  • 外籍劳务费个税扣除标准
  • 企业代收代支的非税收入需要缴税吗?
  • 超额用电罚款应由谁缴纳
  • 天然气税费
  • 核销单怎么做
  • 企业注销时资本公积怎么处理
  • 所得税工资薪金允许税前扣除
  • 小规模纳税人开票限额是多少
  • 个体户一般纳税人可以开13个点的专票吗
  • 餐饮发票可以计入什么费用
  • 跨年度费用应如何计算
  • 农产品个体销售税率多少
  • 八仙花的养殖方法冬季怎么养
  • PHP:mcrypt_generic_deinit()的用法_Mcrypt函数
  • Laravel 5.4重新登录实现跳转到登录前页面的原理和方法
  • 上月未开发票的销项税,已经申报缴税,在本月开了票,应该如何填报?
  • 嵌入式从业10年,聊聊我对工业互联网和消费物联网的看法 | 文末赠书4本
  • 收到房租怎么做账务处理
  • free命令看到的内存
  • 财务报表年报和汇算清缴的顺序
  • 备抵法账务处理方式
  • vue移动组件
  • sqlserver 15247
  • 企业账务处理程序的概念
  • 使用正则表达式提取文本(888)555
  • 一次性扣除固定资产出售处理
  • 支付境外培训费要交关税么
  • 进项税和销项税月末怎么结转
  • 未取得发票如何报销
  • 投资收益在什么科目
  • 待抵扣进项税额是什么情况下用的
  • 收到的业务赔偿如何入账
  • 施工企业的具体工作有哪些
  • 增值税发票税控开票软件用户密码
  • 担保贷款中的特殊形式
  • 工会经费的计提与缴纳
  • windows启动失败是怎么回事
  • windows 10预览版
  • alpine安装apt
  • ksysslim.exe
  • macos 备份
  • php.ini linux
  • win10语音控制电脑
  • Android游戏开发读后感
  • cocos2dx schedule
  • 第一个安卓项目
  • node 连接sqlserver
  • unity程序开发
  • Javascript Throttle & Debounce应用介绍
  • Zero Clipboard js+swf实现的复制功能使用方法
  • js表单事件有哪些
  • jquery 设置css
  • javascript基础编程
  • 简单介绍中秋节
  • checkbox批量删除
  • python中fun函数怎么用
  • 河南省国家税务局官网
  • 税控发票开票软件金税盘版发票未报送什么情况?
  • 自然人电子税务局(扣缴端)怎么添加公司
  • 内蒙古赤峰市房价2023年最新房价走势
  • 什么叫做免抵税额
  • 代理记账公司里的公司文件盒书写样式图片
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设