You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用onDestroy方法时,Activity属性在两种场景下的变化?

Activity调用onDestroy时属性的销毁逻辑

当Activity的onDestroy被调用时,分两种场景,属性的处理逻辑完全不同:

一、配置变更触发的onDestroy

  • 系统会销毁当前Activity实例,但会自动保存视图的基础状态(比如EditText的输入内容、ListView的滚动位置)
  • 你自定义的成员变量(比如普通字符串、自定义对象属性)会跟着旧实例一起被销毁;不过可以通过onSaveInstanceState方法提前把需要保留的属性值存入Bundle,在新Activity实例的onCreate中取出恢复
  • 总结:旧实例的属性全部销毁,新实例需手动恢复才能拿到之前的属性值

二、Activity正在结束触发的onDestroy

  • 这种情况是Activity真正走向终结(比如用户按返回键、调用finish()、系统因内存不足强制回收),整个Activity实例会被彻底销毁
  • 所有属性(不管是系统控件状态还是自定义变量)都会随着实例被回收,不会被保留;如果要留存数据,必须自己提前做持久化处理(比如存到SharedPreferences、本地数据库或文件)

内容的提问来源于stack exchange,提问作者Amir hossein bagheri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 12:18:28