如何在替换旧片段时避免执行onResume初始化

时间:2016-11-28 13:19:28

标签: android android-fragments onresume back-stack android-transitions

似乎当片段A被片段B替换时,在停止片段A之前调用A.onResume()。

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

是否可以:

  • 在替换此片段时避免调用A.onResume()?
  • 在A.onResume()中检测到是否因为正在替换片段而生成此调用?

这是我替换片段的代码:

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

1 个答案:

答案 0 :(得分:0)

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

如果您使用调试器运行应用程序,您可以看到小对话框附加调试器,此对话框是系统对话框,所以当它显示的系统将充当您的活动不再是暂停它的前台活动(以及您加载的任何内部片段) at on create)。

尝试跟随,在您的片段中打印日志时调用恢复和暂停。 然后运行应用程序,无需debuger。

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