Android 在一个片段中像覆盖一样继续

Android 在一个片段中像覆盖一样继续,android,Android,现场 我有一个包含2个片段的活动 活动A已启动 片段B完全接管了活动A(UI方面)。 在这里,根据操作,片段C启动并接管整个UI 目标 我想知道用户何时从片段C返回,并返回到片段B 问题 我们都知道不能在片段B中使用onResume覆盖,因为此onResume与活动的生命周期紧密耦合。如果在片段B中有一个像onResume这样的覆盖,它将真正帮助我的案例。我知道当片段C超过它时,片段B并没有暂停,所以我知道类似于onResume的策略不起作用 解决方案 我想我可以在活动a中的backpresse

现场

我有一个包含2个片段的活动

  • 活动A已启动
  • 片段B完全接管了活动A(UI方面)。 在这里,根据操作,片段C启动并接管整个UI
  • 目标

    我想知道用户何时从片段C返回,并返回到片段B

    问题

    我们都知道不能在片段B中使用onResume覆盖,因为此onResume与活动的生命周期紧密耦合。如果在片段B中有一个像onResume这样的覆盖,它将真正帮助我的案例。我知道当片段C超过它时,片段B并没有暂停,所以我知道类似于onResume的策略不起作用

    解决方案

    我想我可以在活动a中的backpressed上附加回调。差不多

    伪代码

     private onBackPressed()
     {
        if (currentFragment == Fragment C) {
           FragmentB = findFragmentB();
           //call custom method written in FragmentB
           FragmentB.onBackPressed();
        } else {
           super.onBackPressed();
        }
     }
    

    在我继续之前,这是正确的前进方向吗?

    准确地说,,,如果这个问题有最合适、最简单的解决方案。我认为你应该继续这样做。我找到了其他方法,但这比其他方法更好、更简单,仅此一点就行了

    BaseFragment currFrag = (BaseFragment) manager.findFragmentById(R.id.fragmentname);
    currFrag.onFragmentResume();
    

    这里不需要解释,onFragmentResume字面上调用片段的Resume。

    您可以使用fragmentonresume()并应该使用。活动onResume()调用片段onResume()。这是件好事,恐怕不行。我从片段C中按回来,而片段B的简历无效(.是的,就psuedo代码而言,您的想法是对的。只需用实例检查一下。比如if(片段C的currentFragment实例){}我不认为您应该手动调用片段或活动的生命周期方法。…@EpicPandaForce我不认为他指的是调用生命周期方法,因为它不存在这样的方法。他说的似乎是您应该使用该方法创建BaseFragment类。