我有一个Activity应用程序,其中多个应用程序Fragments正在使用导航组件进行切换。当我在两个片段之间切换时,它们的onCreate()和onDestroy()方法似乎重叠。因此,当片段访问相同的全局对象时,我很难为片段编写初始化和清理代码。
Framgent_A从到导航Fragment_B具有以下方法顺序:
Fragment_B.onCreate()
Fragment_A.onDestroy()
在Fragment_A.onDestroy()我反转我在Fragment_A.onCreate(). 在我希望事情被调用Fragment_B时处于中立状态。onCreate()然而,情况并非如此,因为Fragment_A.onDestroy()尚未调用。
Android上的重叠是正常的还是我在导航组件中配置了错误?有没有另一种方法可以实现我想要做的事情?我知道我可以将两者结合Fragments起来并使其工作,但我不希望任何一个 Fragment 彼此了解。对我来说,在创建时Framgnet_A仍然活着,应该替换时似乎很奇怪。Fragment_BFragment_BFragment_A
任何帮助是极大的赞赏!
编辑:
在调试时浏览源代码后,我发现在FragmentNavigator.navigate() FragmentTransaction.setReorderingAllowed()被调用,它允许重新排序操作,甚至允许在前onCreate()一个片段之前调用新片段onDestroy()。问题仍然存在,在下一个 Fragment 中初始化相同的全局状态之前,如何解决我在一个 Fragment 中正确清理全局状态的问题。