可能重复:
如何检测屏幕旋转
你好,
我想做的就是检测我的应用程序中的旋转变化。但是,我想我在 Android 系统中发现了一个错误。如果你读到这个:
http://developer.android.com/guide/practices/optimizing-for-3.0.html#Landscape
就是说每次设备改变方向时,都会调用 Activity.onDestroy() ,并调用 Activity.onCreate() 。所以我想我可以只使用 Display.getRotation() 方法来确定我在 Activity.onCreate() 方法中的新方向。但是,我发现由于某种原因,如果您将设备快速翻转 180 度,则永远不会调用 onCreate()(甚至 onResume())。我使用 toast 消息证明了这一点。我的 Activity.onCreate()(或 Activity.onResume())中的 toast 消息会出现 90 度旋转,但不会出现 180 度翻转设备。所以关键是,上面文章中的说法并不总是正确的。
于是我决定使用 OrientationEventListener.onOrientationChanged()。这可行,但我不希望在我的应用程序中一遍又一遍地调用 onOrientationChanged() (它会随着设备的度数的每一次变化而被调用)。这会减慢我正在做的其他事情。我只希望在我将屏幕旋转到足以让屏幕上的图像旋转时调用它,以便我可以确定我是在rotation_0、rotation_90、rotation_180 还是rotation_270。
这当然是 xoom。
有什么建议么