[英]save/restore fragment stack on Activity destroyed
在我的项目中,有活动和片段。 而且有一个Fragment堆栈。
我的问题是在操作系统破坏Activity的情况下如何保存/恢复片段堆栈。
@forcewill谈谈addToBackStack吗? 是的,我做到了。 我不是在谈论弹出的最上面的片段,以防后按。 我说的是在活动被破坏的情况下恢复片段堆栈。
@Derek,我确实按照您的方式将以下内容写入每个片段和活动,以覆盖onStaveInstanceState(...)
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}
但似乎仍然无法正常工作。
我已经测试过-具有Android 4.1的Galaxy S3-具有Android 5.1的模拟器(打开名为“请勿继续活动”的调试选项)
@josedlujan,这与保存单个Fragment实例无关,而与将片段保存在堆栈中有关。
使用savedInstanceState
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
...
if (savedInstanceState != null) {
//Restore the fragment's state here
}
}
...
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
//Save the fragment's state here
}
冯德烈是正确的。 只要将片段添加到Backstack,片段Backstack就会由系统维护。
我很愚蠢,我在活动的onResume / onCreate中做了一些操作,这导致清理已还原的片段回栈。
关闭这个
我怎么犯了愚蠢的错误
public class MyActivity {
....
onResume() {
bottomBar.setDefaultIfNotSet();
}
....
}
onResume中的方法将清除Fragment Backstack。 在BottomBar中,我没有保存活动销毁状态。 因此,在还原“活动”时,该视图不知道它实际上是“不是从头开始创建的”还原的
谢谢德里克和其他人。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.