0

我有两个活动 AB,用户可以通过将手机从纵向旋转到横向来在它们之间切换

我重写了 OnConfigurationChanged 并像这样开始新的活动:

    @Override
    public void onConfigurationChanged(Configuration newConfig) {

      super.onConfigurationChanged(newConfig);

      if (newConfig.orientation==ActivityInfo.SCREEN_ORIENTATION_USER || newConfig.orientation==ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE || newConfig.orientation==ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE)
      {
            final TabGroupActivity tabGroupActivity = (TabGroupActivity) this.getParent();
            final Intent arIntent = new Intent(tabGroupActivity, ARActivity.class);
            tabGroupActivity.startActivity(arIntent);
      }



    }

它第一次运行良好,但第二次,第三次都可以等等。它每两次运行一次

每次失败时,活动 A 都会旋转到横向,我注意到我的覆盖 OnConfigurationChanged 没有被调用。

有什么建议么 ?

这是 Activity B 中 ConfigurationChanged 的​​代码

  @Override
 public void onConfigurationChanged(Configuration newConfig) {

     super.onConfigurationChanged(newConfig);

     Log.i(TAG,"onConfigurationChanged orientation  : " + newConfig.orientation);

      if (!mProgressDialog.isShowing() && (newConfig.orientation==ActivityInfo.SCREEN_ORIENTATION_PORTRAIT|| newConfig.orientation==ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT))
      {
            mOrientationTimer.cancel();

            this.finish();

      }


}
4

2 回答 2

0

您需要onConfigurationChanged在这两个活动中实施。可能你忘记了。或者您可能忘记为这两个活动设置清单android:configChanges="keyboardHidden|orientation"

于 2012-08-24T13:23:27.860 回答
0
android:configChanges="keyboardHidden|orientation"

将其添加到清单文件中的 Activity 中。

于 2012-08-24T13:20:32.853 回答