所有界面方向更改的Android事件?

所有界面方向更改的Android事件?,android,orientation,Android,Orientation,Android API是否公开了在接口方向更改时触发的事件/回调/通知 特别是当:Activity.getWindowManager().getDefaultDisplay().getOrientation()(或getRotation)的返回值将更改时 我会使用Activity.onConfigurationChanged或SurfaceHolder.Callback.surfaceChanged,但当方向直接旋转180度时(例如:从横向向左直接旋转到横向向右)不会触发 很明显,当设备像这样翻

Android API是否公开了在接口方向更改时触发的事件/回调/通知

特别是当:
Activity.getWindowManager().getDefaultDisplay().getOrientation()
(或
getRotation
)的返回值将更改时

我会使用
Activity.onConfigurationChanged
SurfaceHolder.Callback.surfaceChanged
,但当方向直接旋转180度时(例如:从横向向左直接旋转到横向向右)不会触发



很明显,当设备像这样翻转时,Android本身正在采取一些行动——它翻转显示器以匹配。因此,我需要的是它何时执行此操作的一些通知。

当方向发生更改时(意味着onDestroy()被触发),活动将重新启动。也许这有点帮助…

当方向改变时(意味着onDestroy()被触发),活动会重新启动。也许这有点帮助…

实现这个接口

实现这个接口

不,它没有。两个原因:首先,这与配置更改的机制相同-我只是请求接收事件,而不是重新启动活动。其次,它也面临着同样的问题:当方向直接翻转180度时不会发生这种情况。
onDestroy
在将设备翻转180度时不会触发?不,只是我自己测试了一下。此外,
Configuration.orientation
甚至不能区分两个不同的横向(或纵向)方向。两个原因:首先,这与配置更改的机制相同-我只是请求接收事件,而不是重新启动活动。其次,它也面临着同样的问题:当方向直接翻转180度时不会发生这种情况。
onDestroy
在将设备翻转180度时不会触发?不,只是我自己测试了一下。此外,
Configuration.orientation
甚至不能区分两个不同的横向(或纵向)方向。这将以固定速率发射,并以度为单位返回传感器数据。它对跟踪接口方向没有直接的帮助。呃,不,它没有,当设备旋转时,它可能会触发多次(对我来说,它在旋转时会触发0到10次),但随后它会稳定下来(触发的事件为零)。当设备旋转时,它会给你从0到360度的方位。正确-我测试了它。它确实以固定速率发射(根据文档),但如果返回的值与上次发射时的值相同,它将跳过发射。如果没有将返回值与接口方向关联的方法,则返回值不可用。在某种程度上,它可以用来轮询
getRotation
——尽管如果它在显示翻转期间触发(是吗?),甚至是串行触发,那么这将是实现的一个侥幸。你所说的界面定向到底是什么意思?我认为它将被触发,稍后该活动将被销毁并重新创建以处理显示翻转。所谓界面方向,我指的是设备显示其界面的四个可能方向,如
display.getRotation
()返回的。“活动重新启动”没有任何帮助-它与配置更改的机制相同,并且具有相同的缺陷-请参阅我对Sylarr答案()的答复。这将以固定速率启动并以度为单位返回传感器数据。它对跟踪接口方向没有直接的帮助。呃,不,它没有,当设备旋转时,它可能会触发多次(对我来说,它在旋转时会触发0到10次),但随后它会稳定下来(触发的事件为零)。当设备旋转时,它会给你从0到360度的方位。正确-我测试了它。它确实以固定速率发射(根据文档),但如果返回的值与上次发射时的值相同,它将跳过发射。如果没有将返回值与接口方向关联的方法,则返回值不可用。在某种程度上,它可以用来轮询
getRotation
——尽管如果它在显示翻转期间触发(是吗?),甚至是串行触发,那么这将是实现的一个侥幸。你所说的界面定向到底是什么意思?我认为它将被触发,稍后该活动将被销毁并重新创建以处理显示翻转。所谓界面方向,我指的是设备显示其界面的四个可能方向,如
display.getRotation
()返回的。活动重新启动没有任何帮助-它与配置更改的机制相同,并且具有相同的缺陷-请参阅我对Sylarr答案的答复()。