我对在两个片段之间切换的单个活动的最佳方式感兴趣。
我可能已经阅读了 15 篇 Stack Overflow 帖子和 5 篇关于如何做到这一点的博客帖子,虽然我认为我拼凑了一个解决方案,但我不相信它是最好的。所以,我想听听人们对处理这个问题的正确方法的意见,特别是关于父活动和片段的生命周期。
以下是详细情况:
- 可以显示两个可能片段之一的父活动。
- 这两个片段具有我想在会话中持久化的状态,但不一定需要在会话之间持久化。
- 许多其他活动,例如父活动和片段可能被埋在后台堆栈中并由于内存不足而被破坏。
- 我希望能够使用后退按钮在片段之间移动(据我所知,我不能使用 setRetainInstance)。
除了一般的架构建议外,我还有以下悬而未决的问题:
- 如果父活动由于内存不足而被破坏,我如何保证两个片段的状态将被保留,根据这篇文章:当片段被替换并放入后堆栈(或删除)时,它是否留在内存中? . 我只需要一个指向父活动中每个片段的指针吗?
- 父活动跟踪它当前显示的片段的最佳方式是什么?
提前致谢!