我在活动A上附加了一个片段F.当另一个活动变为前端活动时,它被称为onSaveInstanceState
。我已经覆盖了这个功能,看起来像是:
public void onSaveInstanceState(Bundle outState){
saveState_to_outstate
}
现在,当片段F再次位于前面时,它被称为onViewCreated(View view, Bundle savedInstanceState)
。我想恢复以前保存的状态,但我不能,因为savedInstanceState
为空,尽管它是之前在onSaveInstanceState
中写的。
为什么会这样?
答案 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,它也像捆绑和意图一样,并且不受活动或片段生命周期的影响。