FragmentTransaction onSaveInstanceState

时间:2013-07-22 22:35:10

标签: android android-fragments

我有一个小应用程序,它有一个单一的活动,并以片段形式显示内容。所以我通过将当前片段替换为下一个片段来导航我的应用程序(并将它们放在后面的堆栈上)。

应用程序已锁定在纵向中,因此活动永远不会被破坏。

所以我的问题是,如何在导航到片段B之前保存片段A的“实例状态”,并在按下后退按钮时恢复实例状态,片段A将再次显示在屏幕上。

据我所知,片段中的onSaveInstanceState绑定到活动生命周期,只有在活动被销毁时才被调用。由于我使用单个活动并使用片段事务,因此活动永远不会被破坏,因此永远不会调用onSaveInstanceState。

所以我尝试的第二种方法是使用Fragment.getArguments()和Fragment.setArguments()。 但是一旦Fragment被实例化,我就无法更改参数(IllegalStateException)。

那么在这种情况下如何处理片段实例状态的任何其他想法或暗示(单个活动,使用片段事务)?

1 个答案:

答案 0 :(得分:0)

在onDestroyView()中使用Bundle保存实例,然后在onCreateView()中检索它们。