ctivity并没有销毁重建,而是只回调了onConfigurationChanged()方法。在某些情况下,可用此办法避免APP重启。
那么,上述三个属性值各代表什么意思呢,详见下表:
screenSize |
当前可用屏幕尺寸发生了变化。它表示当前可用尺寸相对于当前纵横比的变化,因此会在用户在横向与纵向之间切换时发生变化。 不过,如果您的应用面向 API 级别 12 或更低级别,则 Activity 始终会自行处理此配置变更(即便是在 Android 3.2 或更高版本的设备上运行,此配置变更也不会重新启动 Activity)。 |
smallestScreenSize |
物理屏幕尺寸发生了变化。它表示与方向无关的尺寸变化,因此只有在实际物理屏幕尺寸发生变化(如切换到外部显示器)时才会变化。 对此配置的变更对应于smallestWidth 配置的变化。 不过,如果您的应用面向 API 级别 12 或更低级别,则 Activity 始终会自行处理此配置变更(即便是在 Android 3.2 或更高版本的设备上运行,此配置变更也不会重新启动 Activity)。 |
screenLayout |
屏幕布局发生了变化 — 这可能是由激活了其他显示方式所致。 |
注:上表摘自 https://developer.android.com/guide/topics/manifest/activity-element
如此,我们便处理完了对于折叠屏切换屏幕的优化。