Android PiP(画中画)模式下Activity生命周期相关问题咨询
Android PiP模式下Activity生命周期问题解答
核心结论
Activity进入PiP模式时是否会重建,取决于你是否为对应Activity配置了对应configChanges属性,分两种情况:
情况1:未配置对应configChanges属性(默认行为)
进入PiP模式会触发系统配置变更(涉及屏幕尺寸、屏幕布局、最小屏幕尺寸等配置项修改),系统会默认销毁并重建当前Activity,生命周期流转如下:
- 原有Activity实例依次回调:
onPause→onStop→onDestroy - 新的Activity实例依次回调:
onCreate→onStart→onResume,最终停在onPause状态(PiP窗口处于后台非交互状态)
情况2:已配置对应configChanges属性
如果在AndroidManifest.xml中为目标Activity添加如下配置:
<activity android:name=".YourTargetActivity" android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation" ...> </activity>
系统不会触发Activity重建,仅会回调onConfigurationChanged方法通知配置变更,整个PiP模式的启动和运行周期内:
- Activity不会触发
onStop、onDestroy、onCreate等重建相关方法 - 进入PiP后Activity始终保持
onPause暂停状态,直到用户将PiP窗口恢复为全屏,才会回到onResume状态
补充说明
从PiP模式恢复到全屏的生命周期逻辑和进入PiP完全一致,同样由configChanges配置决定是否触发重建。
内容的提问来源于stack exchange,提问作者LCZ
相关产品推荐
相关产品推荐

