Fragmentってややこしい
これまでFragmentを避けていたおかげで、Googme Maps Android v2 API対応というよりもFragment対応でいろいろと手間取ってたりします。
本でさらっと読んだ知識だけじゃ、なかなか実用に耐えるコードは書けないですね…
ということで、ちょっとハマったところを紹介。
Fragmentから別のFragmentに遷移したときに、元のFragmentのonPauseが呼ばれない
レイアウトファイルの中で<fragment>を定義して、それをメインのActivityに貼り付けている場合、そこから別の全画面なFragmentに遷移しても、元のFragmentのonPauseが呼ばれないばかりか、backで戻ったときにonResumeも呼ばれない状況に悩みました。サイズ0のServiceを管理するフラグメントも一緒に定義していたので2ペーン時の挙動なのでしょうか?
仕方がないのでGoogleのドキュメントとサンプルのソースを見て、なんとか理解したところで修正。
動的生成に変更
とりあえず、Service管理用のフラグメントをUIを持たないものに実装しなおし、 FragmentTransactionで メイン画面のフラグメントそれぞれ追加するようにしたら、 無事にonResume/onPauseというか、onCreateViewから再構築されるようになりました。 setRetainInstanceもちゃんと効くしとりあえず解決でしょうか。