恢复片段的状态

时间:2017-01-04 19:16:35

标签: android android-fragments

我在活动A上附加了一个片段F.当另一个活动变为前端活动时,它被称为onSaveInstanceState。我已经覆盖了这个功能,看起来像是:

public void onSaveInstanceState(Bundle outState){
 saveState_to_outstate
}

现在,当片段F再次位于前面时,它被称为onViewCreated(View view, Bundle savedInstanceState)。我想恢复以前保存的状态,但我不能,因为savedInstanceState为空,尽管它是之前在onSaveInstanceState中写的。

为什么会这样?

2 个答案:

答案 0 :(得分:0)

如果要使用以前的数据恢复片段F.根据我的知识,你应该在Fragment的onViewStateRestored()方法中执行。

OnViewStateRestored(Bundle)告诉片段已恢复其视图层次结构的所有已保存状态。 您应该访问此链接以供参考:Fragment

答案 1 :(得分:0)

方法A:您可以通过bundle或intent将数据从活动A传递到Fragment F.它类似于保存实例的用法。 Send data from activity to fragment in android

方法B:您只能在同一位置使用onCreate()的跟随函数,片段F或活动A.

public void onSaveInstanceState(Bundle outState){ outState.putInt("STATE_NAME", 123);//123 is the data you gonna save super.onSaveInstanceState(outState);//Don't forget to put this }

方法C:使用类似硬编码的SharePreference Android Shared preferences example,它也像捆绑和意图一样,并且不受活动或片段生命周期的影响。