Android开发:Fragment的onResume

335 阅读2分钟

一.前言

onResume() 是 Fragment 类中的一个生命周期方法,通常我们在该方法中可以进行一些初始化和更新操作。切换Fragment可以通过ViewPager和FragmentTransaction这两种方式,但是这两种方式触发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的逻辑;

三.结语

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

关注公众号:Android老皮
解锁  《Android十大板块文档》 ,让学习更贴近未来实战。已形成PDF版

内容如下

1.Android车载应用开发系统学习指南(附项目实战)
2.Android Framework学习指南,助力成为系统级开发高手
3.2023最新Android中高级面试题汇总+解析,告别零offer
4.企业级Android音视频开发学习路线+项目实战(附源码)
5.Android Jetpack从入门到精通,构建高质量UI界面
6.Flutter技术解析与实战,跨平台首要之选
7.Kotlin从入门到实战,全方面提升架构基础
8.高级Android插件化与组件化(含实战教程和源码)
9.Android 性能优化实战+360°全方面性能调优
10.Android零基础入门到精通,高手进阶之路

敲代码不易,关注一下吧。ღ( ´・ᴗ・` ) 🤔