假设:我有一个活动,我正在加载 3个片段,并将它们添加到 Back Stack 。
现实:我有超过3个片段,它们是根据某些条件加载的,并且没有按特定顺序固定。
最初1 将加载然后点击1内的按钮, 2 将替换1 。 2 Fragment上的类似行为将用3个片段替换它。
3 Fragment打开相机以捕获图像,现在可以对活动进行smtimes 进程被终止,从相机返回后,活动被重新创建并加载第一个片段。
我设法通过SaveInstanceState()加载第三个片段,但是然后按下后退按钮应用程序退出,因为片段1和2未加载。我怎样才能加载1然后加载2个最后加载3个碎片?
我也尝试过android:alwaysRetainTaskState =“true”,但没有奏效......
编辑:
保存片段状态 -
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
getSupportFragmentManager().putFragment(outState, "savedFragment", fragment);
}
在 onCreate() -
中恢复片段状态if(savedInstanceState != null){
fragment = getSupportFragmentManager().getFragment(savedInstanceState, "savedFragment");
loadFrag3();
}else {
loadFrag1();
}