首页 > 其他分享 >Android中Fragment的生命周期

Android中Fragment的生命周期

时间:2024-09-07 09:53:01浏览次数:14  
标签:状态 生命周期 Fragment 碎片 调用 Android 活动

文章目录

Android中Fragment的生命周期

和活动一样,碎片也有自己的生命周期,并且它和活动的生命周期实在是太像了,我相信你很快就能学会,下面我们马上就来看一下。

碎片的状态和回调

还记得每个活动在其生命周期内可能会有哪几种状态吗?没错,一共有运行状态、暂停状态、停止状态和销毁状态这4种。类似地,每个碎片在其生命周期内也可能会经历这几种状态,只不过在一些细小的地方会有部分区别。

  • 01.运行状态

当一个碎片是可见的,并且它所关联的活动正处于运行状态时,该碎片也处于运行状态。

  • 02.暂停状态

当一个活动进入暂停状态时(由于另一个未占满屏幕的活动被添加到了栈顶),与它相关联的可见碎片就会进入到暂停状态。

  • 03.停止状态

当一个活动进入停止状态时,与它相关联的碎片就会进入到停止状态,或者通过调用FragmentTransaction的remove()、replace()方法将碎片从活动中移除,但如果在事务提交之前调用addToBackStack()方法,这时的碎片也会进入到停止状态。总的来说,进入停止状态的碎片对用户来说是完全不可见的,有可能会被系统回收。

  • 04.销毁状态

碎片总是依附于活动而存在的,因此当活动被销毁时,与它相关联的碎片就会进入到销毁状态。或者通过调用FragmentTransaction的remove()、replace()方法将碎片从活动中移除,但在事务提交之前并没有调用addToBackStack()方法,这时的碎片也会进入到销毁状态。

结合之前的活动状态,相信你理解起来应该毫不费力吧。同样地,Fragment类中也提供了一系列的回调方法,以覆盖碎片生命周期的每个环节。其中,活动中有的回调方法,碎片中几乎都有,不过碎片还提供了一些附加的回调方法,那我们就重点看一下这几个回调。

  • onAttach()。当碎片和活动建立关联的时候调用。

  • onCreateView()。为碎片创建视图(加载布局)时调用。

  • onActivityCreated()。确保与碎片相关联的活动一定已经创建完毕的时候调用。

  • onDestroyView()。当与碎片关联的视图被移除的时候调用。

  • onDetach()。当碎片和活动解除关联的时候调用。

碎片完整的生命周期

碎片完整的生命周期示意图可参考下图,图片源自Android官网:

在这里插入图片描述

如果对你有帮助,就一键三连呗(关注+点赞+收藏),我会持续更新更多干货~~

标签:状态,生命周期,Fragment,碎片,调用,Android,活动
From: https://blog.csdn.net/m0_63526467/article/details/141988890

相关文章

  • Android 开发避坑经验(2):深入理解Fragment与Activity交互
    在Android开发过程中,Fragment和Activity之间的交互是一个常见的难题,处理不当会引发UI更新问题、生命周期混乱、数据丢失等问题。这篇文章将深入探讨如何避免这些常见坑点,提供可靠的解决方案,并通过示例代码展示最佳实践。1.坑点:Fragment和Activity的生命周期差异......
  • android利用jni读取assets文件夹下的文件
    一、概述在jni的开发中,有时候会在c/c++层读取assets文件夹下的图片。有两种方式可以选择:方式一:在java/kotlin层把文件读取出来,然后以字符串的形式传递给jni层。方式二:java/kotlin层传递一个文件名,jni利用AAssetManager读取文件内容目前介绍的是第二种方......
  • android从java/kotlin层传递bitmap给jni并使用其像素
    一、概述在做jni开发的时候,有些情况下会直接通过java/kotlin层传递bitmap给jni,并取出其数据进行利用。例如:OpenGLES绘制纹理、保存像素图片等。二、代码示例1.在cmake中引入可以操作jni层BitmapInfo的libjnigraphics-landroid2.导入头文件#in......
  • Android 11.0 FolderIcon文件夹图标内预览图标超出边距解决方案
    1.前言在11.0的系统rom定制化产品开发中,在进行Launcher3的功能定制化过程中,在实现文件夹功能的时候,由于产品分辨率等原因在拖拽图标进文件夹的时候,在3*3的布局中,会发现图标出了folder边距,所以就需要分析相关的功能,然后实现解决这个问题2.FolderIcon文件夹图标内预览图标超......
  • 基于Android的B2B电影电商平台系统: 电影管理系统:基于Android的电影平台系统
     目录一.研究目的1.1研究背景1.2研究目的二.系统需求分析三.​​​​​​整体架构设计四.页面展示五.源码获取方式一.研究目的1.1研究背景据了解,以美国为首的国外电影产业早已形成机制健全、信息充分流通的产业链生态圈,其行业利润不仅仅依靠票房,而是通过衍生品......
  • 【学亮IT手记】Servlet的生命周期
    1.1 Servlet的生命周期1.1.1 Servlet的生命周期概述1.1.1.1 什么是生命周期生命周期:一个对象从创建到销毁过程。1.1.1.2 Servlet的生命周期(*****)Servlet生命周期:Servlet对象从创建到销毁的过程。l Servlet何时被创建又是何时被销毁的?Servlet中有init,service,destroy方法,这几......
  • 使用 Android Lua Helper 在VSCODE中调试安卓Lua应用
    一、VSCODE与AndroidLuaHelper的功能特点VisualStudioCode(VSCODE)是一款功能强大的代码编辑器,它以其高度可定制的界面、强大的扩展生态系统、流畅的性能表现以及对众多编程语言的天然支持而备受开发者青睐。在众多的开发场景中,VSCODE都展现出了卓越的性能和灵活性。Lua......
  • 驱动编写——《Android深度探索(卷1):HAL与驱动开发》笔记
    设备驱动大致骨架驱动代码.c文件#include<linux/module.h>#include<linux/init.h>#include<linux/slab.h>//使用kmalloc就需要includestaticunsignedcharmen[100000];//设备文件file,buf数据位置,count可读字节数,ppos偏移量staticssize_t驱动读函数(structfile*......
  • Kubernetes容器生命周期详解:PostStart和PreStop应用案例解析
    1.容器启动命令:容器启动命令指在容器启动时需要执行的命令。通过设置ENTRYPOINT或CMD,可以自定义容器启动时执行的进程。使用了一个简单的Dockerfile来设置ENTRYPOINT命令:FROMubuntuENTRYPOINT["top","-b"]该命令告诉容器启动时运行top命令,并且以-b选项进行批量模式......
  • Android平台通过RTSP服务实现摄像头麦克风共享
    技术背景前些年,我们在完成Android平台RTMP直播推送模块后,遇到这样的技术需求,好多开发者希望在Android平台,实现摄像头和麦克风音视频数据采集编码打包后,对外提供RTSP(RealTimeStreamingProtocol)服务。通常,这样的技术需求,需要通过集成支持RTSP服务功能的库或自己实现轻量级的RTSP服......