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 的生命周期的终点。

生命周期回调的顺序

常见情况下的顺序如下:

  1. 首次启动onCreate()onStart()onResume()
  2. 切换到后台onPause()onStop()
  3. 重新返回onRestart()onStart()onResume()
  4. 销毁onPause()onStop()onDestroy()

生命周期示意图

onCreate

        onStart

        onResume


    User interaction

        onPause

        onStop

        onDestroy

开发者注意点

  1. 资源管理
    • onCreate()中初始化资源,在onDestroy()中释放资源。
    • onPause()onStop()中暂停耗时任务。
  2. 数据保存
    • onSaveInstanceState()中保存临时数据。
    • 适用于系统销毁 Activity 的情况。
  3. 性能优化
    • 避免在onResume()onPause()中执行耗时任务,因为它们会影响切换速度。

通过正确管理生命周期,可以提升应用的性能、稳定性和用户体验。

更新: 2026-03-19 23:17:22
原文: https://www.yuque.com/dongpozhouzi-mshe3/zhm85g/alobgk51p3xzmpsy


相关笔记