Android Activity savedInstanceState

本文总结了Android中Activity的savedInstanceState的使用,探讨了它在何时被调用以及如何保存和恢复Activity状态。当Activity可能被杀死时,onSaveInstanceState方法会被调用,保存当前状态。屏幕旋转、启动新Activity等场景下,系统会调用该方法。默认情况下,它会保存布局中的View和Fragment状态。重写onSaveInstanceState和onRestoreInstanceState可以自定义保存和恢复数据。示例中展示了未调用父类方法时,屏幕旋转导致EditText内容丢失的问题,强调在自定义View时也要考虑保存状态。
摘要由CSDN通过智能技术生成

最近了解了一些关于Android的savedInstanceState相关的知识,在此进行一下总结。


在Android的Activity控件中的onCreate方法中,我们可以获得的一个参数为savedInstanceState:

    @Override
    protected void onCreate(Bundle savedInstanceState)

该参数的作用是什么呢?

这时,我们就得提到构造savedInstanceState的另一个方法:

    @Override
    protected void onSaveInstanceState(Bundle outState)

该方法的作用为:

Called to retrieve per-instance state from an activity before being killed so that the state can be restored in onCreate(Bundle) or onRestoreInstanceState(Bundle) (the Bundle populated by this method will be passed to both).

即:用于保存Activity被杀死前一刻的每个实例的状态,然后当Activity被重启时,传递给onCreate与onRestoreInstanceState方法

该方法的调用时间为:

This method is called before an activity may be killed so that when it comes back some time in the future it can restore its state.

即:当一个Activity可能被杀死时调用。由于是在Activity可能被杀死时调用,但许多情况下调用了onSaveInstanceState方法后Activity并不一定会被杀死,因此其与调用onCreate与onRestoreInstanceState并不是成对的。常见的调用时间有:

  1. 当用户按下HOME键时
  2. 长按HOME键,选择运行其他的程序时
  3. 按下电源按键(关闭屏幕显示)时
  4. 从activity A
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值