0

アプリの起動中にフラグメントがバタバタするのはなぜですか?!?

02-10 11:41:34.699: D/SessionDetailFragment(19272): onResume() 99
02-10 11:41:34.699: D/MPQAudioFragment(19272): onResume() 00
02-10 11:41:34.699: D/MPQAudioFragment(19272): onResume() 99
02-10 11:41:34.699: D/SessionDetailFragment(19272): onPause() 00
02-10 11:41:34.699: D/MPQAudioFragment(19272): onStop() 00 bound_flag: false
02-10 11:41:34.699: D/MPQAudioFragment(19272): onStop() 05 mAudioService: null
02-10 11:41:34.699: D/SessionDetailFragment(19272): onStop() 00 bound_flag: false
02-10 11:41:34.699: D/SessionDetailFragment(19272): onStop() 05 mAudioService: null
02-10 11:41:34.709: D/SessionDetailFragment(19272): onDetach() 00
02-10 11:41:34.709: D/SessionDetailFragment(19272): onAttach() 00
02-10 11:41:34.709: D/SessionDetailFragment(19272): onAttach() 10 activity:MPQMainTabActivity

(サブフラグメントと同様に)SessionDetailFragment完了するとすぐに実行されることに注意してください?!?!次に、フラグメントが破棄されるとすぐに、ルーチンが再開されますか? onResume()MPQAudioFragmentonPause()onAttach()

幸い、このフラッピングは1回だけ発生するようですが、状態の維持が少し難しくなります(そして、何が起こっているのか、そしてその理由を理解したいと思います)。


アップデート:

今のところ、staticキーデータのメンバー属性を使用してフラッピングの問題を回避しています。

このSO投稿onSaveInstanceState()は、呼び出されない場合と潜在的な回避策を示しています:https ://stackoverflow.com/a/2909211/1742657

4

1 に答える 1

0

更新/閉鎖 2013-03-24:

TabHost重複するフラグメントは、親/ラッパー、およびメソッドへの複数の呼び出しが原因であると思われupdateTabます。最初の呼び出しはユーザーがボタンやメニューを押すことで発生し、2 番目の呼び出しはonTabChanged()リスナーによってトリガーされて発生します。

どちらの呼び出しも既存のフラグメントをチェックしますが、インスタンス化が完了していないため、どちらも新しいフラグメントを作成することになりました。

于 2013-03-24T19:12:48.200 に答える