Skip to content
阅读进度

如何理解请详细描述 Activity 从创建到销毁的完整生命周期回调顺序及其触发场景? ​

返回 Android 核心 目录

标准回答 ​

首次打开:onCreate → onStart → onResume。前台页面正常结束:onPause → onStop → onDestroy。返回已有实例是否经过 onRestart,取决于它之前是否已进入 Stopped。

**各阶段的触发场景:**onCreate 初始化新实例;onStart 进入可见阶段;onResume 进入 Resumed。离开 Resumed 会 onPause,完全不可见会 onStop,正常销毁实例会 onDestroy。

**从后台返回:**实例仍在且已 Stopped:onRestart → onStart → onResume;只是 Paused:回到 onResume;实例已不存在:重新走 onCreate → onStart → onResume。

**不能套用的情况:**系统直接终止进程不保证调用 onDestroy。上述是常见完整流程,回调不等于实际画面已呈现。

通俗例子 ​

打开音乐页通常经过 onCreate、onStart、onResume;被别的页面完全盖住后经过 onPause、onStop。正常结束会调用 onDestroy,但进程被直接杀死不保证收到它。

深入解释 ​

**回调通知什么:**onCreate 用来初始化一个 Activity 实例;onStart 表示进入可见阶段;onResume 表示进入可交互阶段。它们是状态通知,不是“屏幕已经显示这一帧”的测量点。

**退出时怎样变化:**被另一页面完全遮住,通常先 onPause 再 onStop;正常结束再 onDestroy。若系统直接结束整个进程,来不及执行销毁回调,所以重要数据不能只在 onDestroy 保存。

易混淆点 ​

进程被直接杀死时,不能保证收到 onDestroy;生命周期回调也不是屏幕实际呈现的时间戳。

参考资料 ​

内容来源 ​

用完整回答理解机制,用真实证据解释项目。