android面试之fragment,Android面试题之Activity和Fragment生命周期 一次性记忆

每当我们换工作面试之前,总是会不由自主的刷起面试题,大部分题我们反反复复不知道刷了多少遍,但是今天记住了,等下一次面试的时候又刷着相同的面试题,我就想问在座的各位,Activity的生命周期,你们到底刷过多少遍 [哭笑] 作为一名程序员 把时间浪费在重复性劳动上是极其不能忍受的 因此 为了让自己省去不必要的脑力开销 我给自己总结了一份面试相关的记忆技巧,在这里分享给大家 记忆不是目的 把知识变成自己的才最关键

前提

需要熟悉Activity的生命周期 通过Activity的周期去对比理解和记忆Fragment生命周期

Activity的生命周期

da0b90913cab969227aac9e588187f8f.png

假设你已经非常熟悉Activity的生命周期了,那么接下来咱们看Fragment的生命周期图

Fragment的生命周期

e325a52e0fea82b7105dbe862832e4c9.png

找出他和Activity的相同之处

2f832633611b008297a62158e05d9bcb.png

这部分完全和Activity一模一样 可以不用记忆它,咱们来看不同的地方

11253d49af679bcf053479a0a61db830.png

其实这部分才是人们最容易搞混和记不住的地方 那咱们来分析一下:

Fragment比Activity多了几个生命周期的回调方法

onAttach(Activity) 当Fragment与Activity发生关联的时候调用

onCreateView(LayoutInflater, ViewGroup, Bundle) 创建该F

onActivityCreated(Bundle)当Activity的onCreated方法返回时调用

onDestroyView() 与onCreateView方法相对应,当该Fragment的视图被移除时调用

onDetach() 与onAttach方法相对应,当Fragment与Activity取消关联时调用

PS:注意:除了onCreateView,其他的所有方法如果你重写了,必须调用父类对于该方法的实现

这些方法理解起来并不费劲 但是要完美记在脑子里 还是需要花上一番功夫的

那咱们一个一个来 先从创建开始:

1.首先 onAttach方法: 和Activity进行关联的时候调用 这个放在第一个 应该好理解

2.我们知道 Activity在onCreate方法中需要调用setContentVIew()进行布局的加载,那么在Fragment中onCreateView就相当于Activity中的setContentVIew

3.onActivityCreate是一个额外的方法 为了告诉Fragment当前Activity的创建执行情况 方便Fragment的后续操作

先后顺序

已知Fragment是依赖Activity而存在的 它们都有着相同的生命周期方法 那么先调用Activity的还是Fragment的呢? 这里分两种情况

如果是创建 那么先创建Activity 后创建Fragment

如果是销毁 那么先销毁Fragment 后销毁Activity

网上有很多文章说Activity的onCreate方法在Fragment的onCreateView之后执行,这是不正确的 Fragment一般都是在Activity的onCreate()中创建 要么通过布局加载的方式 要么通过new创建Fragment对象的方式 如果没有Activity的onCreate 哪来的Fragment

48b64fc9813a2a171bbbb515bad56624.png

总结

上面的理解好后,咱们再整理记忆一下

一句话 Activity是老子 Fragment是小子 进门先让老子进 滚蛋先让小子滚 加载布局createView 老子完事吱一声(ActivityCreated)

希望有帮到你

本帖附件

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面试中,可能会涉及到关于Fragment的一些常见问题,以下是一些可能会被问到的问题及其答案: 1. 什么是FragmentFragmentAndroid中的一种可重用的组件,它可以与Activity进行交互,作为Activity界面的一部分进行展示。它可以有自己的布局和生命周期,并且可以被添加、移除、替换或者在Activity中进行切换。 2. Fragment生命周期是什么样的? Fragment生命周期包括以下几个方法:onAttach、onCreate、onCreateView、onActivityCreated、onStart、onResume、onPause、onStop、onDestroyView、onDestroy和onDetach。这些方法提供了在Fragment生命周期中不同阶段执行代码的机会,开发者可以在这些方法中处理相关的逻辑。 3. FragmentActivity之间的通信方式有哪些? FragmentActivity之间可以通过接口回调、广播、观察者模式等方式进行通信。其中,接口回调是最常见的方式,Activity可以实现一个接口,Fragment通过该接口将数据传递给Activity。广播和观察者模式可以用于更复杂的场景,可以实现多个FragmentActivity之间的通信。 4. FragmentPagerAdapter和FragmentStatePagerAdapter有什么区别? FragmentPagerAdapter和FragmentStatePagerAdapter都是ViewPager的适配器,用于管理Fragment的切换。区别在于FragmentPagerAdapter会保留Fragment的状态,而FragmentStatePagerAdapter会销毁之前的Fragment,适用于有大量Fragment的情况。 5. getFragmentManager、getSupportFragmentManager和getChildFragmentManager有什么区别? getFragmentManager是用于获取与当前Fragment关联的FragmentManager,通常用于在Fragment中获取父级ActivityFragmentManager。getSupportFragmentManager是Support库中的方法,用于获取兼容版本的FragmentManager,通常用于在Support库中使用Fragment。getChildFragmentManager是用于获取Fragment中嵌套的子级FragmentManager,通常用于在一个Fragment中管理另一个Fragment。 以上是一些关于Fragment的常见面试题及其答案。希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值