我正在尝试创建一个在我的应用程序生命周期的整个期间都存在的片段。我希望它只创建一次并在调用活动的 onDestroy() 函数时被销毁(因此,理想情况下,永远不要......)。我知道这违背了 android 在引入片段时的意图,但是我的项目的性质使得改变这个要求是不可能的。
我想澄清的是,整个后台业务。我对 backstack 到底代表什么有点困惑,我知道它是以前的 UI 状态的堆栈,但这是否意味着它是用户当前迭代的片段的堆栈?或者这是一堆 FragmentTransactions,当你 popBackStack() 时,它“撤消”最后一个提交的 FragmentTransaction(如果是这样,“撤消”一个 FragmentTransaction 是什么意思......它只是删除一个添加的片段吗?添加一个已删除的片段,如果我希望它分离一个片段而不是在调用 popBackStack() 时将其删除怎么办?)?
最后,调用 detach() 会阻止 Android 杀死我的 Fragment(不像 remove() 和 replace() 会立即调用 onPause()、onStop()、onDestroy()、onDestroyView() 序列)?如果是这样,我如何让popBackStack()分离()我的片段(我什至可以这样做吗?)......甚至应该将它添加到后台堆栈?
对我的项目的进一步限制 - 我希望所有其他片段都能正常运行(即它们应该能够被操作系统随意销毁/创建)。这个片段不会打开另一个片段,但是如果我点击后退按钮,我希望它返回到打开它的任何片段(不破坏片段)。
任何关于我上面列举的问题的指导和/或澄清将不胜感激!!提前致谢!