当前位置: 首页 > news >正文

android Fragment 生命周期 方法调用顺序

文章目录

    • Intro
    • log 及结论
    • 代码

Intro

界面设计:点击左侧按钮,会将右侧 青色的RightFragment 替换成 黄色的AnotherRightFragment,而这两个 Fragment 的生命周期方法都会打印日志。
所以只要看执行结果中的日志,就可以知道 Fragment 的不同生命周期方法的执行顺序。
在这里插入图片描述
点击按钮后,右侧的Fragment被替换:
在这里插入图片描述

log 及结论

2024-03-24 20:40:26.903 FragmentUsageTestActivi  W  Fragment的生命周期:=====》切换Fragment
2024-03-24 20:40:26.916 RightFragment            D  Fragment的生命周期: RightFragment onAttach: 
2024-03-24 20:40:26.916 RightFragment            D  Fragment的生命周期: RightFragment onCreate: 
2024-03-24 20:40:26.917 RightFragment            D  Fragment的生命周期: RightFragment onActivityCreated: 
2024-03-24 20:40:26.919 RightFragment            D  Fragment的生命周期: RightFragment onStart: 
2024-03-24 20:40:26.921 RightFragment            D  Fragment的生命周期: RightFragment onResume: 
2024-03-24 20:40:38.070 FragmentUsageTestActivi  W  Fragment的生命周期:=====》切换Fragment
2024-03-24 20:40:38.081 RightFragment            D  Fragment的生命周期: RightFragment onPause: 
2024-03-24 20:40:38.081 RightFragment            D  Fragment的生命周期: RightFragment onStop: 
2024-03-24 20:40:38.082 AnotherRightFragment     D  Fragment的生命周期: AnotherRightFragment onAttach: 
2024-03-24 20:40:38.082 AnotherRightFragment     D  Fragment的生命周期: AnotherRightFragment onCreate: 
2024-03-24 20:40:38.087 AnotherRightFragment     D  Fragment的生命周期: AnotherRightFragment onActivityCreated: 
2024-03-24 20:40:38.088 AnotherRightFragment     D  Fragment的生命周期: AnotherRightFragment onStart: 
2024-03-24 20:40:38.090 RightFragment            D  Fragment的生命周期: RightFragment onDestroyView: 
2024-03-24 20:40:38.091 AnotherRightFragment     D  Fragment的生命周期: AnotherRightFragment onResume: 
2024-03-24 20:40:42.935 FragmentUsageTestActivi  W  Fragment的生命周期:=====》点击了【返回】按钮 (onBackPressed)
2024-03-24 20:40:42.936 AnotherRightFragment     D  Fragment的生命周期: AnotherRightFragment onPause: 
2024-03-24 20:40:42.937 AnotherRightFragment     D  Fragment的生命周期: AnotherRightFragment onStop: 
2024-03-24 20:40:42.939 RightFragment            D  Fragment的生命周期: RightFragment onActivityCreated: 
2024-03-24 20:40:42.939 RightFragment            D  Fragment的生命周期: RightFragment onStart: 
2024-03-24 20:40:42.940 AnotherRightFragment     D  Fragment的生命周期: AnotherRightFragment onDestroyView: 
2024-03-24 20:40:42.940 AnotherRightFragment     D  Fragment的生命周期: AnotherRightFragment onDestroy: 
2024-03-24 20:40:42.940 AnotherRightFragment     D  Fragment的生命周期: AnotherRightFragment onDetach: 
2024-03-24 20:40:42.940 RightFragment            D  Fragment的生命周期: RightFragment onResume: 
2024-03-24 20:40:44.765 FragmentUsageTestActivi  W  Fragment的生命周期:=====》点击了【返回】按钮 (onBackPressed)
2024-03-24 20:40:44.766 RightFragment            D  Fragment的生命周期: RightFragment onPause: 
2024-03-24 20:40:44.767 RightFragment            D  Fragment的生命周期: RightFragment onStop: 
2024-03-24 20:40:44.768 RightFragment            D  Fragment的生命周期: RightFragment onDestroyView: 
2024-03-24 20:40:44.769 RightFragment            D  Fragment的生命周期: RightFragment onDestroy: 
2024-03-24 20:40:44.769 RightFragment            D  Fragment的生命周期: RightFragment onDetach: 
2024-03-24 20:40:48.307 FragmentUsageTestActivi  W  Fragment的生命周期:=====》点击了【返回】按钮 (onBackPressed)

在这里插入图片描述

结论与 《第一行代码》中所述一致:
在这里插入图片描述

代码

可以查看以下三个提交点(改动一样, gitee网速最快,不过三个网站界面有不同,看你习惯看哪个):
gitee: https://gitee.com/wuyujin1997/android-demo/commit/0d75711e244b7c59ed009326b8174bedcb4caff8
github: https://github.com/wuyujin1997/AndroidDemo/commit/0d75711e244b7c59ed009326b8174bedcb4caff8
bitbucket: https://bitbucket.org/wuyujin1997/androiddemo/commits/0d75711e244b7c59ed009326b8174bedcb4caff8

主要的生命周期方法日志类如下(其他的就不贴了,见上 git commit link):

import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;public class BaseFragmentForLifecycleLog extends Fragment {private String TAG;public BaseFragmentForLifecycleLog() {TAG = this.getClass().getSimpleName();}@Overridepublic void onAttach(@NonNull Context context) {super.onAttach(context);Log.d(TAG, "Fragment的生命周期: " + TAG + " onAttach: ");}@Overridepublic void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);Log.d(TAG, "Fragment的生命周期: " + TAG + " onCreate: ");}@Nullable@Overridepublic View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {Log.d(TAG, "Fragment的生命周期: " + TAG + " onCreateView: ");return super.onCreateView(inflater, container, savedInstanceState);}@Overridepublic void onActivityCreated(@Nullable Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);Log.d(TAG, "Fragment的生命周期: " + TAG + " onActivityCreated: ");}@Overridepublic void onStart() {super.onStart();Log.d(TAG, "Fragment的生命周期: " + TAG + " onStart: ");}@Overridepublic void onResume() {super.onResume();Log.d(TAG, "Fragment的生命周期: " + TAG + " onResume: ");}@Overridepublic void onPause() {super.onPause();Log.d(TAG, "Fragment的生命周期: " + TAG + " onPause: ");}@Overridepublic void onStop() {super.onStop();Log.d(TAG, "Fragment的生命周期: " + TAG + " onStop: ");}@Overridepublic void onDestroyView() {super.onDestroyView();Log.d(TAG, "Fragment的生命周期: " + TAG + " onDestroyView: ");}@Overridepublic void onDestroy() {super.onDestroy();Log.d(TAG, "Fragment的生命周期: " + TAG + " onDestroy: ");}@Overridepublic void onDetach() {super.onDetach();Log.d(TAG, "Fragment的生命周期: " + TAG + " onDetach: ");}}

相关文章:

android Fragment 生命周期 方法调用顺序

文章目录 Introlog 及结论代码 Intro 界面设计:点击左侧按钮,会将右侧 青色的RightFragment 替换成 黄色的AnotherRightFragment,而这两个 Fragment 的生命周期方法都会打印日志。 所以只要看执行结果中的日志,就可以知道 Fragme…...

python写爬虫爬取京东商品信息

工具库 爬虫有两种方案: 第一种方式是使用request模拟请求,并使用bs4解析respond得到数据。第二种是使用selenium和无头浏览器,selenium自动化操作无头浏览器,由无头浏览器实现请求,对得到的数据进行解析。 第一种方…...

使用Linux别名简化命令输入

Linux定义命令别名,解决经常重复输入长命令 在Linux环境下工作时,我们经常需要输入长长的命令,这不仅耗时而且容易出错。Linux提供了一种名为“别名(alias)”的功能,可以让我们为这些长命令定义简短的名称…...

34.网络游戏逆向分析与漏洞攻防-游戏网络通信数据解析-登录数据包的监视与模拟

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果 内容参考于:易道云信息技术研究院VIP课 上一个内容:33.游戏登录数据…...

rust - 对文件夹进行zip压缩加密

本文提供了一种对文件夹进行zip压缩并加密的方法。 添加依赖 cargo add anyhow cargo add walkdir cargo add zip cargo add zip-extensions计算文件夹的大小 目的是对需要压缩的文件夹的大小做一个限制。当然如果资源足够的话,可以去掉此限制。 let mut total_s…...

ETL数据倾斜与资源优化

1.数据倾斜实例 数据倾斜在MapReduce编程模型中比较常见,由于key值分布不均,大量的相同key被存储分配到一个分区里,出现只有少量的机器在计算,其他机器等待的情况。主要分为JOIN数据倾斜和GROUP BY数据倾斜。 1.1GROUP BY数据倾…...

Python的asyncio:异步编程的利器

在Python中,asyncio模块为开发者提供了强大的异步编程支持,使得编写高效且并发的代码变得更加容易。本文将深入探讨asyncio的核心概念、工作原理以及如何快速入门,通过文字与代码结合,带您领略异步编程的魅力。 1. 协程与事件循环…...

nodejs+vue高校奖助学金系统python-flask-django-php

高校奖助学金系统的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品,体验高科技时代带给人们的方便,同时也能让用户体会到与以往常规产品不同的体验风格。 与安卓,iOS相比较起来,…...

已解决redis.clients.jedis.exceptions.JedisMovedDataException异常的正确解决方法,亲测有效!!!

已解决redis.clients.jedis.exceptions.JedisMovedDataException异常的正确解决方法,亲测有效!!! 目录 问题分析 报错原因 解决思路 解决方法 使用JedisCluster自动处理MOVED错误 手动更新客户端缓存 总结 博主v&#xff…...

政安晨:【深度学习实践】【使用 TensorFlow 和 Keras 为结构化数据构建和训练神经网络】(五)—— Dropout和批归一化

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras实战演绎 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! Dropout和批归一化是深度学习领域中常用的正则化技术…...

nodejs+vue高校会议室预订管理系统python-flask-django-php

伴随着我国社会的发展,人民生活质量日益提高。于是对系统进行规范而严格是十分有必要的,所以许许多多的信息管理系统应运而生。此时单靠人力应对这些事务就显得有些力不从心了。所以本论文将设计一套高校会议室预订管理系统,帮助学校进行会议…...

文件夹读取不到文件:深度解析与高效恢复策略

一、遭遇文件夹读取难题:文件离奇失踪 在日常使用电脑或移动设备的过程中,我们有时会遇到一个令人头疼的问题:原本存储着重要数据的文件夹突然变得“空空如也”,其中的文件仿佛凭空消失一般,无法正常读取。这种文件夹…...

python—接口编写部分

最近准备整理一下之前学过的前端小程序知识笔记,形成合集。顺便准备学一学接口部分,希望自己能成为一个全栈嘿嘿。建议关注收藏,持续更新技术文档。 目录 前端知识技能树http请求浏览器缓存 后端知识技能树python_api:flaskflask…...

手机IP地址如何更换

手机IP地址的修改方法可以通过以下几种方式实现: 1. 手动更改IP地址:打开手机设置,进入网络设置页面,找到IP地址更改选项。在此页面输入新的IP地址和子网掩码,并启用DHCP服务器。请注意,并非所有手机都支持…...

【R包开发:包的组件】 第4章 包的元数据

DESCRIPTION(描述文件) 的作用是存储包中重要的元数据。当第一次开发包时, 你会 使用这个文件记录包运行时所需要的包。然而,随着时间的流逝,当开始与他人分享包 时,元数据文件变得越来越重要,因为它指定了谁可以使用它…...

Office办公软件之word的使用(一)

前几天调整公司招标文件的格式,中途遇到一些问题,感觉自己还不是太熟悉操作,通过查阅资料,知道了正确的操作,就想着给记下来。如果再次遇到,也能很快地找到解决办法。 一、怎么把标题前的黑点去掉 解决办法…...

OpenGL+QT实现矢量和影像的叠加绘制

一、QT下OpenGL框架的初始化 OpenGL的介绍我在这里就没有必要介绍了,那OpenGL和QT的结合在这里就有必要先介绍一下,也就是怎么使用QT下的OpenGL框架。要想使用QT下的OpenGL框架,就必须要子类化QGLWidget,然后实现。 void initia…...

vue基础——java程序员版(vuex)

​ vuex可以定义共享数据。 1、主要结构 src/store/index.js 是使用vuex的核心js文件。 定义数据:state 修改数据(同步):mutations 修改数据(异步):action调用>mutations 下面定义了一个公共数据msg ,mutations方法setName…...

ubuntu20.04安装 ffmpeg 开发环境

参考:参考1 一些相关软件包,已打包整理好,如下 源码包 1、安装步骤 创建安装目录 sudo mkdir -p /usr/local/ffmpeg/lib 解压源码 tar -jxf ffmpeg-4.3.2.tar.bz2 到指定ffmpeg目录进行配置 cd ffmpeg-4.3.2/ 配置:会报错很多…...

微软开源Garnet高性能缓存服务安装

Garnet介绍 Garnet是一款微软研究院基于C#开发而开源的高性能缓存服务,支持Windows、Linux多平台部署,Garnet兼容Redis服务API,在性能和使用架构上较Redis有很大提升(官方说法),并提供与Redis一样的命令操…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络&#xf…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...

什么是EULA和DPA

文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...

浅谈不同二分算法的查找情况

二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况&#xf…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...