从Android

时间:2017-04-10 10:11:30

标签: android android-fragments fragment-backstack

假设:我有一个活动,我正在加载 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();
}

0 个答案:

没有答案