Android开发:Fragment的onResume

一.前言

onResume()Fragment 类中的一个生命周期方法,通常我们在该方法中可以进行一些初始化和更新操作。切换Fragment可以通过ViewPagerFragmentTransaction这两种方式,但是这两种方式触发onResume方法的时机却是不同的。

二.正文

1.ViewPager切换

当使用 ViewPager 切换 Fragment 时,系统会自动调用被切换的 Fragment 的生命周期方法。

当一个 Fragment 被创建添加到 ViewPager 中并且可见时,系统会调用该 Fragment 的 onResume()生命周期方法。

当一个Fragment再次被切换成ViewPager当前页面并且可见时,系统会调用该 Fragment 的 onResume() 生命周期方法。

2.FragmentTransaction切换

当使用 FragmentTransaction 替换 Fragment 时,系统不会自动调用生命周期方法。如果需要在替换 Fragment 时调用生命周期方法,需要手动调用。

当一个 Fragment 被创建添加到 FragmentTransaction 中管理并且show可见时,系统会调用该 Fragment 的onResume()生命周期方法。

此后再通过FragmentTransaction来隐藏或显示该Fragment时,系统都不会调用该 Fragment 的 onResume()生命周期方法,但会调用该Fragment 的 onHiddenChanged(boolean hidden) 回调函数。

因此当我们使用FragmentTransaction来管理Fragment时,为了在Fragment可见时都能实现onResume方法的效果,可以考虑以下方案:

(1)使用show()方法后手动调用Fragment的onResume() 方法;

(2)重写Fragment的 onHiddenChanged(boolean hidden),在里面再次实现和onResume的逻辑;

三.结语

本文基于自身知识经验编写,只供学习参考,不知之处还请指正,欢迎一起探讨交流!

猜你喜欢

转载自blog.csdn.net/wsfsp_4/article/details/128773117