安卓:Fragment生命周期中的方法

3

我正在寻找Fragment 生命周期中的一种方法,但是我不确定是哪一个。

这是我的情况:我在ViewPager中有一个Fragment。该Fragment显示了一个带有某些信息的列表。我在Fragment的onCreateView()中填充列表。当用户打开不同的Activity(在这种情况下是设置)并更改一些设置时,列表中要显示的信息会更改。当用户使用返回按钮返回到Fragment时,onCreateView()不会被重新调用,因此列表中的信息不会更新。

我的问题是:当用户从不同的Activity返回Fragment时,onCreateView()方法不会被调用,但这里会调用哪个方法?我需要知道这一点,这样我就可以在那个方法中填充列表。

提前感谢!


1
onResume怎么样? - Vladimir Mironov
@vmironov onResume() 方法是在 Fragment 第一次创建时被调用,还是只有在用户返回时才会被调用? - Xander
是的,当 Fragment 被创建时它会被调用。 - Vladimir Mironov
好的,谢谢,那个应该可以用。我会试一下。 - Xander
2个回答

2
重要且不明显的一点是,当使用ViewPager时,Fragment的onCreateView()方法并不仅在选择了该Fragment所在的Tab时才被调用。因此,请不要依赖于Fragment的onCreateView()方法。当您选择选项卡时,Android会创建可见视图(缓存它们)或执行类似操作。
当用户在ViewPager中选择正确的选项卡时,应调用更新方法(具体细节不太记得了,但希望这有所帮助)。

我会记住的,但是现在我只在onCreateView()中调用findViewById(),所以我敢打赌这不会成为一个问题,对吗? - Xander
使用findViewById() - 没有问题,因为您只是创建对某个视图的引用。如果您放置了一些UI刷新或尤其是耗时逻辑,可能会出现意外行为,因为它可能比您预期的更早运行。 - Rodion Altshuler

1

onResume()是简单的答案,当用户返回时调用。有关详细信息,请参见FragmentLifecycle生命周期。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接