在应用程序启动过程中,android碎片拍打
为什么我的碎片会在应用程序启动时拍打在应用程序启动过程中,android碎片拍打,android,android-fragments,android-tabhost,android-tabs,Android,Android Fragments,Android Tabhost,Android Tabs,为什么我的碎片会在应用程序启动时拍打 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
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
成员属性来解决扑动问题
这篇文章指出了未调用onSaveInstanceState()
的情况,以及潜在的解决方法:UPDATE/CLOSURE 2013-03-24:
重复片段似乎是由父/包装器TabHost
和对updateTab
方法的多次调用造成的。第一个调用来自用户按下按钮和菜单,第二个调用来自监听器触发的onTabChanged()
这两个调用都将检查现有片段,但由于实例化尚未完成,因此都最终创建了一个新片段。更糟糕的是,
onSaveInstanceState()
在这个翻页过程中似乎没有被调用:(.我能看到的唯一“hack”/解决方法是使用静态成员变量。