Android 的 Activity 生命周期 是由系统管理的一组回调方法,用于控制 Activity 从创建到销毁的过程。这些方法帮助开发者管理资源、用户界面状态和数据流。以下是 Activity 生命周期的主要阶段及其方法:
完整生命周期
完整生命周期从onCreate()开始,到onDestroy()结束。Activity 在这期间存在,且它的所有资源被分配。
可见生命周期
可见生命周期从onStart()开始,到onStop()结束。在这期间,Activity 对用户是可见的,但可能不一定在前台。
前台生命周期
前台生命周期从onResume()开始,到onPause()结束。在这期间,Activity 是用户当前交互的主要界面。
生命周期回调方法
**1. **onCreate()
- 触发时机:Activity 首次创建时调用。
- 用途:
- 初始化 Activity。
- 设置用户界面(调用
setContentView())。 - 初始化数据和逻辑。
- 示例:
**2. **onStart()
- 触发时机:Activity 对用户可见时调用,但还未进入前台。
- 用途:
- 开始准备资源或逻辑,使界面可见。
- 比如启动动画、注册广播接收器。
- 注意:此时 Activity 可能在后台(非交互状态)。
**3. **onResume()
- 触发时机:Activity 进入前台,与用户直接交互时调用。
- 用途:
- 恢复暂停的任务,如播放视频或音乐。
- 开始接收用户输入。
- 注意:此方法紧跟
onStart(),是用户完全可见的状态。
**4. **onPause()
- 触发时机:Activity 失去焦点,但仍然可见时调用。
- 例如弹出对话框或切换到另一个 Activity。
- 用途:
- 暂停正在进行的任务,如暂停视频。
- 保存用户未提交的输入。
- 注意:此时 Activity 仍在屏幕上,但用户可能无法操作。
**5. **onStop()
- 触发时机:Activity 不再对用户可见时调用。
- 用途:
- 停止动画或重度任务。
- 释放临时资源(如内存、网络请求)。
- 通常与
onStart()对应。
- 注意:此方法调用后,系统可能会回收 Activity,需保证数据已保存。
**6. **onRestart()
- 触发时机:从停止状态重新启动时调用。
- 用途:
- 恢复停止状态时释放的资源。
- 通常接着调用
onStart()。
**7. **onDestroy()
- 触发时机:Activity 被销毁时调用。
- 用户退出 Activity 或系统因内存不足销毁它。
- 用途:
- 彻底清理资源(如取消注册监听器、释放内存)。
- 通常是 Activity 的生命周期的终点。
生命周期回调的顺序
常见情况下的顺序如下:
- 首次启动:
onCreate()→onStart()→onResume() - 切换到后台:
onPause()→onStop() - 重新返回:
onRestart()→onStart()→onResume() - 销毁:
onPause()→onStop()→onDestroy()
生命周期示意图
onCreate
↓
onStart
↓
onResume
↓
↑
User interaction
↓
onPause
↓
onStop
↓
onDestroy开发者注意点
- 资源管理:
- 在
onCreate()中初始化资源,在onDestroy()中释放资源。 - 在
onPause()和onStop()中暂停耗时任务。
- 在
- 数据保存:
- 在
onSaveInstanceState()中保存临时数据。 - 适用于系统销毁 Activity 的情况。
- 在
- 性能优化:
- 避免在
onResume()和onPause()中执行耗时任务,因为它们会影响切换速度。
- 避免在
通过正确管理生命周期,可以提升应用的性能、稳定性和用户体验。
更新: 2026-03-19 23:17:22
原文: https://www.yuque.com/dongpozhouzi-mshe3/zhm85g/alobgk51p3xzmpsy