0

私は2つのアクティビティ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);
      }



    }

最初は問題なく動作しますが、2回目、3回目は問題ありません。2回に1回は動作します。

失敗するたびに、アクティビティAが横向きに回転し、オーバーライドされたOnConfigurationChangedが呼び出されないことに気付きました。

助言がありますか ?

これがアクティビティ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両方のアクティビティに実装する必要があります。おそらくあなたはそれを忘れました。または、2つのアクティビティのマニフェストを設定するのを忘れた可能性がありますandroid:configChanges="keyboardHidden|orientation"

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

マニフェスト ファイルのアクティビティに追加します。

于 2012-08-24T13:20:32.853 に答える