Android 如何知道片段何时来自弹出窗口

Android 如何知道片段何时来自弹出窗口,android,android-fragments,back-stack,Android,Android Fragments,Back Stack,我有两个片段,A和B。之前,A和B都是顶级的,当我想从一个移动到另一个时,我会使用 FragmentManager fragmentManager = getSupportFragmentManager(); fragmentManager.beginTransaction() .replace(R.id.container, BFragment.newInstance(), B_TAG) .disallowAddToBackSta

我有两个片段,A和B。之前,A和B都是顶级的,当我想从一个移动到另一个时,我会使用

FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
                .replace(R.id.container, BFragment.newInstance(), B_TAG)
                .disallowAddToBackStack()
                .commit();
现在客户端想要从B开始,点击后退按钮,应用程序转到A,所以我需要使B成为A的子对象,因此转换看起来像

FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
                .add(R.id.container, BFragment.newInstance(), B_TAG)
                .addToBackStack(null)
                .commit();
从B到A

FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.executePendingTransactions();
            fragmentManager.popBackStack();
            fragmentManager.executePendingTransactions();
问题是,如果用户更改了B中的某些内容,A仍然拥有旧数据

有没有一种方法可以通过单击“后退”按钮并从后退中弹出它来知道我到达了一个目标,这样我就可以刷新数据了


另外,您是否看到更好的方法来处理这两个碎片之间的移动

我将存储公共数据:

  • 在处理应用程序中持久状态的单例中,如果该数据对整个应用程序感兴趣
  • 在数据片段(没有任何UI的片段)中,每个UI片段都可以访问和更改数据
然后,在每个UI片段中,您可以在恢复片段时更新视图