onResume()和 onPause()的触发条件
在 Android 中,onResume()和 onPause()是 Activity 生命周期中的两个关键方法,它们控制着界面是否处于前台可交互状态。
🧠 一、触发 [onResume()]的时机
当你的 Activity 进入前台并准备好与用户交互时,系统会调用 onResume()。
✅ 常见触发场景:
| 情况 | 是否触发 |
|---|---|
| 应用首次启动 | ✅ 是 |
| 用户从其他 Activity 返回当前页面 | ✅ 是 |
| 从锁屏解锁后回到应用 | ✅ 是 |
| 从后台切换到前台(如通过最近任务) | ✅ 是 |
🧠 二、触发 onPause()的时机
当你的 Activity 失去焦点或部分被遮挡但仍可能可见 时,系统会调用 onPause()
✅ 常见触发场景:
| 情况 | 是否触发 |
|---|---|
| 启动一个新的 Activity(即使新 Activity 是透明的) | ✅ 是 |
| 用户按下 Home 键 | ✅ 是 |
| 来电弹窗(来电 Activity 遮挡当前页面) | ✅ 是 |
| 锁屏 | ✅ 是 |
手动调用 finish()(销毁前) | ✅ 是 |
🔄 三、生命周期流程图简析(重点突出)
onCreate()↓
onStart()↓
onResume() ← 当前 Activity 可交互(注册传感器)↓
[运行中...]↓
onPause() ← 当前 Activity 失去焦点(注销传感器)↓
onStop()↓
onDestroy()
🎯 四、总结对比表
| 方法 | 触发时机 | 推荐用途 | 是否必须调用 super |
|---|---|---|---|
| onResume() | Activity 进入前台并可交互 | 注册传感器、恢复动画、开启前台服务等 | ✅ 必须 |
| onPause() | Activity 失去焦点或部分被遮挡 | 注销传感器、保存临时状态、释放资源等 | ✅ 必须 |
