理由は以下。
- Icepickはビルド時にクラス名にsuffixを付ける。(classファイルの中を調べるとクラス名が変わっている)
- AndroidAnnotationsはサブクラスを生成する。そのクラスにはsuffixが付いていない。
- IcepickはSuffixが付いているクラスのみRestore/Save対象とする。よってAndroidAnnotationsを使うとRestore/Save対象にならない。
AndroidAnnotationsでも@InstanceStateを使うとRestore/Saveをしてくれるのでこれを使えばいい。
ただし、@InstanceStateはActivityかFragmentでないと使えないのでカスタムViewの状態はRestore/Saveできない。なのでViewの状態はすべてActivity/Fragmentで持つようにしないといけない。