通常、デバイスを90度回転させると(縦向きまたは逆向き)、構成が変更されたり、アクティビティが破棄されて再作成されたりするためDisplay.getRotation()
、起動時の値を保存して操作できます。
ただし、デバイスを0から180(ポートレートからポートレート)または90から270(ランドスケープからランドスケープ)に直接回転させる場合、構成は変更されず、デバイスは画面を再マップするだけです。レイアウトのアスペクト比は変更されず、変更する必要がないため、これは理にかなっています。しかし、これにより、Activityは、そのような変更がいつ発生したか、つまり、いつSurface.ROTATION_90
行ったかSurface.ROTATION_270
などを検出できなくなります。
ポーリングとは別に、Display.getRotation()
この変更を検出するためのより良い方法はありますか?