外观
旋转屏幕或配置变化时具体发生什么?
标准回答
默认需要重建且旧页面处于前台时,旧 Activity 通常执行 onPause → onStop → onDestroy;新实例执行 onCreate → onStart → onResume。系统可能保存并恢复状态;onSaveInstanceState 的精确相对时机与版本等条件有关,不应背成一条所有版本都相同的固定顺序。
机制解释
系统需要根据新的尺寸、方向、语言、密度等配置重新选择资源。若正确声明并自行处理相关 configChanges,可能收到 onConfigurationChanged 而不为这些变化重建,但应用必须自己完成资源和布局适配。
延伸追问
跨屏一定重建吗?不一定,取决于配置差异、应用声明和系统策略。即使没有重建,窗口尺寸和布局约束变化也会触发重新测量与布局,所以画面仍可铺满新屏幕。
内容来源
- Android 智能硬件 SDK 技术 Wiki · 原条目
Q03