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