Android 使用正确的片段还原活动

Android 使用正确的片段还原活动,android,android-fragmentactivity,restore,Android,Android Fragmentactivity,Restore,我有一个主要的活动来保存片段。 如果我按下“主页”按钮,然后重新进入我的应用程序,我想恢复我从未离开过的片段。 这可能吗?我可以这样做吗?我不太理解你的问题,但是如果你想回到前面的片段,你必须使用addToBackStack(null) 假设你在一个片段中:片段A,你调用片段B FragmentManager fm = getSupportFragmentManager(); FragmentTransaction ft = fm.beginTransaction();

我有一个主要的活动来保存片段。 如果我按下“主页”按钮,然后重新进入我的应用程序,我想恢复我从未离开过的片段。
这可能吗?我可以这样做吗?

我不太理解你的问题,但是如果你想回到前面的片段,你必须使用addToBackStack(null)

假设你在一个片段中:片段A,你调用片段B

    FragmentManager fm = getSupportFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();

    ft.replace(R.id.fragments_container, fragment);
    ft.setTransition(FragmentTransaction.TRANSIT_NONE);

        ft.addToBackStack(null);

    ft.commit();
如果不添加行ft.addToBackStack(null),当用户按下片段B的后退按钮时,您将永远不会返回片段A。但是如果使用此行,则意味着您将在片段队列中包含片段A,然后再传递到片段B。这样,当按下后退按钮时,你会回到片段A


那是你的问题吗?

不是。我的问题是:如果我离开我的应用程序(例如,按home按钮)。当我重新进入我的应用程序时,我想显示上次离开时可见的片段。例如,当你按下“主页”按钮时,你的应用程序未关闭,它仍在后台运行,因此你不必什么都不做,当你回到应用程序时,它将记住之前加载的片段。另一个问题是当用户完全关闭应用程序时,或者因为android系统需要更多资源并决定关闭你的应用程序(它在后台)。在这种情况下,我不太确定是否有一种本地方式来保持片段队列,但你可以这样做,当应用程序调用活动的onClose方法时,使用共享首选项保存片段队列。当应用程序再次打开时,您可以恢复上次会话的片段队列。无论如何,我认为你真的不需要完成这个任务…通常,当一个应用程序关闭时,应该打开主屏幕。