Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 按顺序从后台取出所有碎片_Android_Android Fragments_Back Stack - Fatal编程技术网

Android 按顺序从后台取出所有碎片

Android 按顺序从后台取出所有碎片,android,android-fragments,back-stack,Android,Android Fragments,Back Stack,我正在我的应用程序项目中使用片段。所有片段都添加到后堆栈中: ... fragmentTransaction.addToBackStack(null); ... 稍后,从后堆栈中按顺序获取所有片段的正确方法是什么?使用GetBackbackEntryCount()可以迭代后堆栈,并使用GetBackBackbackEntryAt()方法获取每个片段 编辑: 根据评论中的一些讨论,建议您手动存储已添加到Backback的片段列表,并将这些片段持久化到SharedReference中。然后,当应用

我正在我的应用程序项目中使用片段。所有片段都添加到后堆栈中:

...
fragmentTransaction.addToBackStack(null);
...

稍后,从后堆栈中按顺序获取所有片段的正确方法是什么?

使用
GetBackbackEntryCount()
可以迭代后堆栈,并使用
GetBackBackbackEntryAt()
方法获取每个片段

编辑:
根据评论中的一些讨论,建议您手动存储已添加到Backback的片段列表,并将这些片段持久化到SharedReference中。然后,当应用程序启动时,您可以读回此列表,并重新加载这些片段。

但是当调用getbackbackbackentryat()时,我得到了“backbackbackentry”,我如何才能获得片段?我需要后堆栈中的碎片。抱歉,看起来您无法使用这些方法。您将需要自己手动保留引用,尽管backbackentry的文档中没有说明您不应该保留这些引用。请问你想达到什么目标?可能有更好的解决方案当服务器响应不正确时,我的应用程序将被终止。如果用户再次启动应用程序,我的应用程序将显示以前显示的片段,因此我的应用程序需要在本地保留片段回堆栈信息,我需要按顺序从backstack获取片段。您应该手动存储当前打开的所有片段的列表。如果您知道应用程序何时将被终止,那么您将能够将列表持久化到SharedReferences中,然后在应用程序再次启动时检索它们。每次在后堆栈中添加或删除某些内容时,请确保将引用添加到列表中。为了使它更简单,有一个Constants类为每个片段分配一个ID(int类型),然后您将能够交叉引用加载的片段。