Android 当用户使用addfragment方法(而不是replace Fragment)按back键时,将调用哪个方法

Android 当用户使用addfragment方法(而不是replace Fragment)按back键时,将调用哪个方法,android,android-fragments,Android,Android Fragments,我正在寻找答案,但无法找到以下答案 默认情况下,我加载了一个片段 现在我用getFragmentManager().beginTransaction().add()添加新片段(B),片段B可见 用户按back,FragmentManager将弹出片段B,片段A再次可见 所以我的问题是,当片段B被分离时,片段A中的哪个方法将被调用,我正在调试片段A中的所有onResume、onAttach,但看起来它没有被调用 有一点是,如果我们使用replace fragment而不是add fragmen

我正在寻找答案,但无法找到以下答案

  • 默认情况下,我加载了一个片段
  • 现在我用
    getFragmentManager().beginTransaction().add()
    添加新片段(B),片段B可见
  • 用户按back,FragmentManager将弹出片段B,片段A再次可见
所以我的问题是,当片段B被分离时,片段A中的哪个方法将被调用,我正在调试片段A中的所有onResume、onAttach,但看起来它没有被调用

有一点是,如果我们使用replace fragment而不是add fragment,它将使用fragment生命周期运行extract,但使用“add”方法,看起来像是屏幕上仍然可见的fragment A,那么是否还要检测何时fragment A不再被fragment B覆盖


有什么想法吗

最后,我找到了处理“add fragment”的方法(请注意,当我们使用add fragment时,片段生命周期并不像“replace fragment”那样运行)


在活动中,只需实现FragmentManager.OnBackbackChangedListener来处理后堆栈的更改,然后获取后堆栈的顶部片段以执行您想要的操作。

最后,我找到了处理“添加片段”的方法(请注意,当我们使用添加片段时,片段生命周期不会像“替换片段”那样运行)


在“活动”中,只需实现FragmentManager.OnBackbackChangedListener来处理后堆栈的更改,然后获取后堆栈的顶部片段以执行您想要的操作。

当用户将一个活动导航到片段,然后在生命周期以下调用

第一个片段:奥纳塔克

第一个片段:onCreate

第一个片段:onCreateView

第一个片段:onViewCreated

第一个片段:onActivityCreated

第一个片段:onStart

第一个片段:onResume

当用户将第一个片段导航到第二个片段时 addtobackstack和add()然后在生命周期以下调用 第二个片段:奥纳塔克

第二个片段:onCreate

第二个片段:onCreateView

第二个片段:onViewCreated

第二个片段:onActivityCreated

第二个片段:onStart

第二个片段:onResume

当用户在addtobackstack()和add()的情况下按下back键时,下面的生命周期调用 第二段:暂停

第二段:顶部

第二个片段:onDestroyView

第二个片段:onDestroy

第二个片段:onDetach

当用户在addtobackstack和replace()的情况下将第一个片段导航到第二个片段,然后在生命周期以下调用 第二个片段:奥纳塔克

第二个片段:onAttachonAttach

第二个片段:onCreate

第一个片段:暂停

第一个片段:顶部

第一个片段:onDestroyView

第二个片段:onCreateView

第二个片段:onViewCreated

第二个片段:onActivityCreated

第二个片段:onStart

第二个片段:onResume

当用户在addtobackstack()和replace的情况下按下back时,则在生命周期以下调用 第二段:暂停

第二段:顶部

第二个片段:onDestroyView

第二个片段:onDestroy

第二个片段:onDetach

第一个片段:onCreateView

第一个片段:onViewCreated

第一个片段:onActivityCreated

第一个片段:onStart


FirstFragment:onResume

当用户将一个活动导航到片段,然后在生命周期以下调用

第一个片段:奥纳塔克

第一个片段:onCreate

第一个片段:onCreateView

第一个片段:onViewCreated

第一个片段:onActivityCreated

第一个片段:onStart

第一个片段:onResume

当用户将第一个片段导航到第二个片段时 addtobackstack和add()然后在生命周期以下调用 第二个片段:奥纳塔克

第二个片段:onCreate

第二个片段:onCreateView

第二个片段:onViewCreated

第二个片段:onActivityCreated

第二个片段:onStart

第二个片段:onResume

当用户在addtobackstack()和add()的情况下按下back键时,下面的生命周期调用 第二段:暂停

第二段:顶部

第二个片段:onDestroyView

第二个片段:onDestroy

第二个片段:onDetach

当用户在addtobackstack和replace()的情况下将第一个片段导航到第二个片段,然后在生命周期以下调用 第二个片段:奥纳塔克

第二个片段:onAttachonAttach

第二个片段:onCreate

第一个片段:暂停

第一个片段:顶部

第一个片段:onDestroyView

第二个片段:onCreateView

第二个片段:onViewCreated

第二个片段:onActivityCreated

第二个片段:onStart

第二个片段:onResume

当用户在addtobackstack()和replace的情况下按下back时,则在生命周期以下调用 第二段:暂停

第二段:顶部

第二个片段:onDestroyView

第二个片段:onDestroy

第二个片段:onDetach

第一个片段:onCreateView

第一个片段:onViewCreated

第一个片段:onActivityCreated

第一个片段:onStart


FirstFragment:onResume

读取片段lifecycleRead已读取,通过替换片段,我们可以通过重新创建所有视图来捕获它。但是,当我使用add fragment时,我找不到检测片段是否恢复的方法,如果您认为我的问题是愚蠢的,请至少帮助一些url,并投反对票:(@Piyush你能给我一个建议吗?Read fragments lifecycleRead已被读取,通过替换fragment,我们可以通过重新创建所有视图来捕获它。但是当我使用add fragment时,我找不到检测片段是否恢复的方法,请至少帮助一些url,如果你认为我的问题是愚蠢的,请投反对票:(@piyus)你能给我一个建议吗?