Icepick.saveInstanceState

Icepickは、回転などによってActivity破棄が行われても、Activityのメンバフィールドが、保存/復元されるようにするライブラリ。

GitHub - frankiesardo/icepick: Android Instance State made easy
Activityインスタンス破棄対策にIcepickを使ってみる - Qiita

onSaveInstanceStateで、Icepick.saveInstanceStateをすることで保存される。
build.gradleは、

特に、

ここがfalseだと、うまく復元しないので注意。
MainActivity.javaで、

@Stateを付けると、そのフィールドは破棄時に保存、生成時に復元される。
mTextは最初はnull、buttonを押したら"ABCDE"がセットされるようにする。
onCreateの時、ToastでmTextを常に表示するようにする。

buttonを押してない場合、何も表示されない。
buttonを押してない場合、何も表示されない。

buttonを押してない場合、nullなので何も表示されない。

buttonを押した後は、回転しても、"ABCDE"が表示されるので、mTextが復元できている。
buttonを押した後は、回転しても、"ABCDE"が表示されるので、mTextが復元できている。

buttonを押した後は、回転しても、"ABCDE"が表示されるので、mTextが復元できている。

Sample/icepick/Icepick/saveInstanceState/IP/IP_ at master · bg1bgst333/Sample · GitHub