Android fragment 生命周期 详解

本文通过一个包含两个Fragment的示例项目,详细记录并解释了Fragment在不同操作下的生命周期变化,包括加载、切换、跳转及返回过程中的关键状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以前看到别人写那个生命周期,好像都写的不具体,大多数都是粘贴复制。然后自己有详细记录一下,方便以后回顾。


在下面的demo中,我用了2个fragment,

一个是leftFragmentg,一个是rightFragment,一下是主页面布局。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >


    <FrameLayout
        android:id="@+id/fragmentlayout"
        android:layout_width="match_parent"
        android:layout_height="400dp" >
    </FrameLayout>


    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:text="切换" />


    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_toRightOf="@+id/button1"
        android:text="跳转" />


</RelativeLayout>


leftFragment 样子

rightFragment样子


主页面布局


启动的时候。我先加载上leftFragmeng

以下是大家经常看到的声明周期:


然后我点击切换:

生命周期如下:


从上面的声明周期,就可以看出,当 activity已经加载上的时候, activity的声明周期将不会做任何处理。而且leftFragment只会执行到将里面的视图销毁。并没有销毁fragment,因为从上面可以看出来leftFragment并没有实现onDestroy,和onDetach,

,然后我跳转到另外一个页面。

此时的生命周期如下:


也就说说当把这个activity压入栈中,只是执行到了onstop方法,然后我点击返回,(注这里不管是点击返回还是finish,都是走这条路),



前面我将rightFragemnt加入回退栈中。此时生命周期如下


从上面可以看出前面的leftFragment并没有进行销毁只是执行到了onDestriyView方法,这里重新返回这个,就是onCreateView方法,之后的声明周期咯,

在这里,我再次点击返回。


。。看到这里,大家应该明白了一下吧,总结一下,                             拓展一下,fragment如果放在onstart方面中,也只是在onstart之后执行onattch\\一直到fragment的onstart方法,


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值