Android中onSaveInstanceState()数据的保存

本文详细介绍了在Android开发中,如何使用onSaveInstanceState()和onRestoreInstanceState()来保存和恢复Activity的数据。当Activity因系统原因被销毁时,onSaveInstanceState()会被调用来保存瞬态状态。文章提到了调用这两个方法的场景,如屏幕旋转、按HOME键等,并强调不应依赖此方法来存储持久化数据。同时,讨论了onRestoreInstanceState()的执行条件,并给出了示例代码。
摘要由CSDN通过智能技术生成

你将了解:

  • 什么情况下会调用A的onSaveInstanceState()方法
  • 怎么使用onSaveInstanceState()进行数据的保存(步骤)
  • onRestoreInstanceState (Bundle outState)的使用

本篇博文规则:
A代表Activity

在平时的开发中,有时候这样的当Aa进入Ab的时候,可能系统把Aa回收掉(思考什么情况下这种情况会出现),
再按back执行的不是Aa的onRestart而是onCreate(),Aa被重新创建一次,这时候Aa中的临时数据和状态可能被丢失,怎么保存呢onSaveInstanceState()回调登场。
此方法是A的一个回调方法,一定在A被回收之前调用,方法中有一个Bundle参数,putString(),putInt()需要传入2个参数,下面说一下使用方式和步骤

一、调用A的onSaveInstanceState()方法情景

总的来说当A容易(一种可能性未被销毁)被系统销毁的时候会调用此方法,,特殊A被用户主动销毁就不会执行eg:用户按back键

当A位于栈顶的时候,调用场景如下:
下面场景的分析原则:
以按HOME为列
系统不知道你按下HOME要运行多少其他程序,也不知道A是否会销毁,所以会调用此方法,让用户有机会保存某些非永久性的数据

  • 按HOME键时
  • 长按HOME选择其他运用程序
  • 按下电源键关闭屏幕时候。
  • 从A启动一个新的A时
  • 屏幕方向切换时
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值