Android 如何知道片段何时来自弹出窗口
我有两个片段,A和B。之前,A和B都是顶级的,当我想从一个移动到另一个时,我会使用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
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片段都可以访问和更改数据李>