onConfigurationChanged(配置newConfig)没有调用

时间:2013-01-22 09:00:40

标签: android onconfigurationchanged

在我的应用程序中,我只是覆盖了下面给出的onConfigurationChanged方法

@Override
public void onConfigurationChanged(Configuration newConfig) {
    System.out.println("Configuration Changed");
    Configuration c = getResources().getConfiguration();

    if (c.orientation == Configuration.ORIENTATION_PORTRAIT) {
        // portrait

    } else if (c.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        // landscape

    }
}

但是在调用屏幕方向时,它并没有被调用。

在清单中,我的活动就像这样

<activity
        android:name=".MainActivity"
        android:configChanges="orientation"
        android:label="@string/title_activity_main" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

1 个答案:

答案 0 :(得分:2)

它没有被称为super.onConfigurationChanged(newConfig);所以方法变为

@Override
public void onConfigurationChanged(Configuration newConfig) {

  super.onConfigurationChanged(newConfig);

  System.out.println("Configuration Changed");
  Configuration c = getResources().getConfiguration();

  if (c.orientation == Configuration.ORIENTATION_PORTRAIT) {
    // portrait
  } else if (c.orientation == Configuration.ORIENTATION_LANDSCAPE) {
    // landscape
  }

}

并在清单中添加了android:configChanges="orientation|screenSize"

谢谢SSS: - )