日々精進

新しく学んだことを書き留めていきます

AndroidAnnotationsとIcepickは一緒に使えない

理由は以下。

  • 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で持つようにしないといけない。