在这种情况下,在哪里恢复我的片段状态?

问题描述:

初学者在这里。我有一个持有ViewPager,反过来,有3个片段的活动:在这种情况下,在哪里恢复我的片段状态?

[ Activity ] 
    [ ViewPager ] 
     [ Frag1 ] 
     [ Frag2 ] 
     [ Frag3 ] 

说我在Frag3,我已经做了一些工作,它和我的应用程序已指定了价值之一该片段中的成员变量。

然后我点击主页(我的活动进入背景,它是onStop方法被称为)。然后我点击我手机上的最新信息,然后再次选择我的活动(它回到前台,它显示我的Frag3)。

我的Fragment中该成员变量所持有的值已丢失。

我已经在我的Fragment中的onSaveInstanceState方法中保存了该值,但我不知道何时应该检索它。我读过我应该这样做onActivityCreated,但在我刚刚描述的情况下,它不会被调用(我相信只有onStart和onResume将被调用,对吗?OnActivityCreated仅被称为如果我滑动所有去Frag1然后回到Frag3),我的应用会崩溃(它有)。

在这种情况下,何时应该检索Bundle中的值?

当你使用片段时,对应的是onCreateView。你有第三个参数,名为savedInstanceState

Reference

savedInstanceState(束):如果非空,该片段被从先前保存的状态重新构造为这里给出。

+0

onCreateView出现在onActivityCreated之前,所以它也不会被调用,我只是试过它......感谢您的帮助! –

+0

hmm。你什么时候为ViewPager设置适配器?我的Activity的onCreate方法中的 – vilpe89

+0

。 –