Android Activity生命周期详解
Activity生命周期是Android面试的核心考点,理解生命周期对开发稳定的应用至关重要。
完整生命周期方法
1. onCreate()
- 触发时机:Activity首次创建时
- 作用:初始化UI、恢复状态、设置布局
- 注意:此时Activity尚未可见
2. onStart()
- 触发时机:Activity即将可见时
- 作用:注册广播、启动动画等轻量级初始化
- 注意:Activity还未获得焦点
3. onResume()
- 触发时机:Activity获得焦点,可以与用户交互
- 作用:启动相机、定位等需要焦点的操作
- 注意:此时Activity位于前台
4. onPause()
- 触发时机:Activity失去焦点,但仍部分可见
- 作用:保存关键数据、停止动画、释放资源
- 注意:执行要快,否则会阻塞下一个Activity显示
5. onStop()
- 触发时机:Activity完全不可见
- 作用:释放资源、注销广播、停止定位
- 注意:可能被系统回收
6. onDestroy()
- 触发时机:Activity被销毁前
- 作用:最终清理工作
- 注意:区分正常销毁和配置变更导致的重建
7. onRestart()
- 触发时机:Activity从停止状态重新启动
- 作用:恢复停止前的状态
典型场景生命周期流程
| 场景 | 生命周期流程 |
|---|---|
| 首次启动 | onCreate → onStart → onResume |
| 跳转到其他Activity | onPause → onStop |
| 返回原Activity | onRestart → onStart → onResume |
| 按Home键 | onPause → onStop |
| 屏幕旋转 | onPause → onStop → onDestroy → onCreate → onStart → onResume |
| 系统回收 | 直接调用onDestroy,无回调 |
面试要点
- 在onCreate和onRestoreInstanceState中恢复数据
- onPause中不要执行耗时操作
- 使用ViewModel避免配置变更导致的数据丢失