【发布时间】:2013-09-25 19:08:48
【问题描述】:
我对在两个片段之间切换的单个活动的最佳方式感兴趣。
我可能已经阅读了 15 篇 Stack Overflow 帖子和 5 篇关于如何做到这一点的博客帖子,虽然我认为我拼凑了一个解决方案,但我并不认为它是最好的解决方案。所以,我想听听人们对处理这个问题的正确方法的意见,特别是关于父活动和片段的生命周期。
具体情况如下:
- 可以显示两个可能片段之一的父活动。
- 这两个片段的状态表明我希望在会话中保持不变,但不一定需要在会话之间保持不变。
- 许多其他活动,例如父活动和片段可能被埋在后台堆栈中并由于内存不足而被破坏。
- 我希望能够使用后退按钮在片段之间移动(据我了解,我不能使用 setRetainInstance)。
除了一般架构建议之外,我还有以下未解决的问题:
- 如果父activity由于内存不足而被销毁,我如何保证两个片段的状态都会被保留,根据这篇文章:When a Fragment is replaced and put in the back stack (or removed) does it stay in memory?。我只需要一个指向父活动中每个片段的指针吗?
- 父 Activity 跟踪其当前显示的片段的最佳方式是什么?
提前致谢!
【问题讨论】: