簡単に知りたい人向け。
Androidでは画面回転時、またはアクティビティがバックグラウンドにいるときにOSが必要と判断した場合にはアクティビティの再生成を行う。そのためメンバ変数などが消えてしまうので実装に苦労することがある。
画面回転させないようにすることもできるが、画面回転させたいけど、アクティビティを再生成して欲しくない場合には、以下のようにマニフェストファイルにに記述すると回転を抑制できる。
アクティビティ単位に記述する必要がある。
orientation|screenSizeは画面回転時のアクティビティを再生成させないように指定する部分だ。またキーボードが隠れるときにもアクティビティが再生成されるのでkeyboardHiddenも指定するのが普通になっている。
面倒だから最初からこうすればいいのに?と思うかもしれないが、再生成しないと横長になったときにレイアウトを変更することができなかったり、文字サイズなどを画面に併せて変更できなくなるというデメリットもあるので使い分けたい。
画面回転させないようにすることもできるが、画面回転させたいけど、アクティビティを再生成して欲しくない場合には、以下のようにマニフェストファイルにに記述すると回転を抑制できる。
アクティビティ単位に記述する必要がある。
orientation|screenSizeは画面回転時のアクティビティを再生成させないように指定する部分だ。またキーボードが隠れるときにもアクティビティが再生成されるのでkeyboardHiddenも指定するのが普通になっている。
面倒だから最初からこうすればいいのに?と思うかもしれないが、再生成しないと横長になったときにレイアウトを変更することができなかったり、文字サイズなどを画面に併せて変更できなくなるというデメリットもあるので使い分けたい。
<activity android:name=".MainActivity" android:configChanges="orientation|screenSize|keyboardHidden">