通常将设备旋转 90 度,(纵向到横向或反向)会导致配置更改,Activity 被销毁并重新创建等,因此它可以只保存Display.getRotation()
启动时的值并使用它。
但是,当直接从 0 到 180(纵向到纵向)或 90 到 270(横向到横向)旋转设备时,没有进行任何配置更改,设备只是重新映射屏幕。这是有道理的,因为布局的纵横比没有改变,也不需要改变。但这使得 Activity 无法检测到此类更改何时发生,即何时发生Surface.ROTATION_90
等Surface.ROTATION_270
。
除了轮询Display.getRotation()
,有没有更好的方法来检测这种变化?