0

看来,当一个片段A由B片段取代,A.onResume()被停止片段A.如何避免执行的onResume初始化时被替换旧片段

我执行初始化之前调用在A.onResume()中,我想避免在删除A时调用它们。

是否有可能:

  • 避免调用A.onResume更换此片段时()?
  • 在A.onResume()中检测到由于片段被替换而生成此调用?

这里是我更换片段代码:

FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
ft.replace(R.id.main_content, fragment); 
ft.commit(); 
+0

你怎么确定''onResume()'在调用期间被调用? –

+0

这可能是一个轨道。我做的调试如下:1)注意旧的片段对象的id。 2)触发替换3)更换代码中的断点4)onresume中的断点,确认它在旧片段的onResume方法(id)上。 onResume由OS框架(moveToState)触发。我没有看到还有什么可以触发onResume。但我会调查这首歌曲,谢谢! – Kain

回答

0

的问题可能在调试器本身。

如果你用调试器运行应用程序,你可以看到一个小对话框附加调试器,这个对话框是系统对话框,因此当它显示的系统将作为你的活动不再是前台活动暂停它的时候(以及任何内部片段你加载创建)。

请尝试以下操作,在您的片段中打印日志时会调用恢复和暂停。 然后运行没有debuger的应用程序。

调试器最简单的方法并没有这种行为是运行应用程序后附加debuger。 :(

+0

感谢您的建议。我试过了,但即使没有调试,日志也显示onResume在de取代之后正在旧片段上运行(随后是新片段)。 – Kain

相关问题