傾けたとき対応

傾けて画面の縦・横が入れ替わると画面が初期化されてしまうのでそれの対応。

onSaveInstanceStateで状態を保存して、onRestoreInstanceStateで状態を復元するだけ。引数のBundleクラスのメソッドに値の保存用のメソッド(putStringとかputSerializableなど)と復元用のメソッド(getStringとかgetSerializableなど)があるので保持しておきたい値をそのメソッドを使って保持してあげればよいです。

Activityの説明によればonRestoreInstanceStateはonStartの後に呼ばれるとなっていて、Activity Lifecycleの図を見る限りでは起動時にも呼ばれるように見えますけど、エミュレータで動作確認をした限りでは起動時には呼ばれていないようでした。なので最初は起動時と復元時でonRestoreInstanceState内の処理を分けないと駄目かと思いましたが、復元時のことだけ考えてコードを書いて上手くいっています。