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 失去焦点或部分被遮挡 | 注销传感器、保存临时状态、释放资源等 | ✅ 必须 |