Android应用程序启动期间的片段震动

时间:2013-02-10 17:03:05

标签: android android-fragments android-tabhost android-tabs

为什么我的Fragment会在应用启动期间闪烁?!?

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()(其子片段MPQAudioFragment也是如此),它们会立即运行onPause()?!?!然后,一旦碎片被拆除,它就会再次开始onAttach()程序?

幸运的是,这种拍打似乎只发生一次,但它使维持状态更具挑战性(我想了解发生了什么以及为什么)。


更新

目前,我正在通过对关键数据使用static成员属性解决扑动问题。

此SO帖子指的是onSaveInstanceState()未被调用的情况,以及可能的解决方法:https://stackoverflow.com/a/2909211/1742657

1 个答案:

答案 0 :(得分:0)

更新/关闭2013-03-24:

重复片段似乎是由父/包装器TabHost引起的,并且多次调用updateTab方法。第一个调用是用户按下按钮和菜单,第二个调用来自监听器触发的onTabChanged()

两次调用都会检查现有的片段,但由于实例化尚未完成,因此最终都会创建一个新的片段。