如何检测方向的变化,但让android处理它们?

如何检测方向的变化,但让android处理它们?,android,screen-orientation,android-lifecycle,oncreate,android-orientation,Android,Screen Orientation,Android Lifecycle,Oncreate,Android Orientation,我有一个非常类似的问题: 我需要让android处理方向的变化,因为我想重新创建活动 但是,我还需要检测何时产生了方向变化 这两种结合的需求是否能够同时实现?要在不干扰活动进程的情况下检测活动的旋转,您可以执行以下操作: @Override public void onConfigurationChanged(Configuration config) { super.onConfigurationChanged(config); // Check for the rotatio

我有一个非常类似的问题:

我需要让android处理方向的变化,因为我想重新创建活动

但是,我还需要检测何时产生了方向变化


这两种结合的需求是否能够同时实现?

在不干扰活动进程的情况下检测活动的旋转,您可以执行以下操作:

@Override
public void onConfigurationChanged(Configuration config) {
    super.onConfigurationChanged(config);
    // Check for the rotation
    if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        Toast.makeText(this, "LANDSCAPE", Toast.LENGTH_SHORT).show();
    } else if (config.orientation == Configuration.ORIENTATION_PORTRAIT){
        Toast.makeText(this, "PORTRAIT", Toast.LENGTH_SHORT).show();
    }
}
此外,您需要确保清单上的活动允许对轮换进行配置更改

<activity android:name=".MyActivity"
          android:configChanges="orientation|keyboardHidden"
          android:label="@string/app_name">

android:configChanges

列出活动将自行处理的配置更改。什么时候 配置更改在运行时发生,活动将关闭 默认情况下重新启动,但使用此 属性将阻止重新启动活动。相反 活动仍在运行,其onConfigurationChanged()方法为 打电话来


您可以使用标志控制旋转,如果调用了
onConfigurationChanged()
,您可以自己调用活动的
onCreate()
。如果没有,则仅当活动第一次实例化时才会调用onCreate()

请阅读我的问题。我需要android处理活动更改。我想你不明白我的问题#1“我需要让android处理方向更改,因为我想重新创建活动。”-通过调用onConfigurationChanged并将配置传递给super()构造函数,你并没有阻止android处理方向更改。它仍然可以处理它#2“但是,我还需要检测何时产生了方向更改。”-使用该重写方法,您可以让android处理方向,同时使用'config'参数检查是横向旋转还是纵向旋转。若这不是您的意思,那个么即使我调用了该方法的super()构造函数,也不会调用道歉oncreate