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

news/2024/4/28 7:45:57/文章来源:https://blog.csdn.net/wuyujin1997/article/details/136994712

文章目录

    • 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: ");}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1026450.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS时钟案例

文章目录 1. 演示效果2. 分析思路3. 代码实现 1. 演示效果 2. 分析思路 背景是表盘&#xff0c;不用自己制作然后用CSS的定位做时针&#xff0c;分针和秒针黑点用伪元素::after生成转动用animation实现 3. 代码实现 <!DOCTYPE html> <html lang"en">&…

【详细讲解React 快速入门教程】

&#x1f525;博主&#xff1a;程序员不想YY啊&#x1f525; &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家&#x1f4ab; &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 &#x1f308;希望本文对您有所裨益&#xff0c;如有…

Python中的变量与常量

变量&#xff1a;在程序运行过程中&#xff0c;值会发生变化的量&#xff0c; 常量&#xff1a;在程序运行过程中&#xff0c;值不会发生变化的量。 无论是变量还是常量&#xff0c;在创建时都会在内存中开辟一块空间&#xff0c;用于保存它的值。 Python 中的变量不需要声明…

数据链路层协议之以太网协议

以太网协议是通过网线/光纤进行通信。这和通过wifi&#xff08;无线&#xff09;&#xff0c;通过移动流量&#xff08;4G/5G&#xff09;通信不一样。以太网&#xff0c;横跨数据链路层和物理层 一.以太网数据帧格式 包括了帧头载荷(IP数据报)帧尾。 1.目的地址 源地址 分别…

初探Flink集群【持续更新】

周末下雨&#xff0c;倒杯茶&#xff0c;在家练习Flink相关。 开发工具&#xff1a;IntelliJ Idea 第一步、创建项目 打开Idea&#xff0c;新建Maven项目&#xff0c;包和项目命名 在pom.xml 文件中添加依赖 <properties><flink.version>1.13.0</flink.vers…

【Redis主从架构。主从工作原理psync、bgsave、部分数据复制、主从复制风暴解决方案】【Redis哨兵高可用架构。sentinel】

Redis主从架构 Redis主从工作原理数据部分复制 Redis哨兵高可用架构client连接哨兵规则主节点挂了&#xff0c;集群从新选择主节点&#xff0c;并且同步给sentinel 转自图灵课堂 redis主从架构搭建&#xff0c;配置从节点步骤&#xff1a; 1、复制一份redis.conf文件2、将相关…

六大原则与设计模式

1. 六大原则 1.1 单一原则&#xff08;SRP&#xff09; 应该有且仅有一个原因引起类的变更 1. 复杂性降低&#xff0c;可读性高&#xff0c;可维护性提高 2. 变更引起的风险降低&#xff0c;变更是必不可少的&#xff0c;如果接口的单一职责做得好&#xff0c;一个接口修改…

基于单片机多功能智能台灯设计

**单片机设计介绍&#xff0c;基于单片机多功能智能台灯设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的多功能智能台灯设计是一个集硬件与软件于一体的综合性项目&#xff0c;旨在为用户提供更加便捷、舒适和节…

如何借用 NTFS 交换数据流 实现隐藏文件?如何使用【文件包含】PHP伪协议?不同操作系统如何实现文件隐藏和木马伪装?

如何借用 NTFS 交换数据流 实现隐藏文件?如何使用【文件包含】PHP伪协议?不同操作系统如何实现文件隐藏和木马伪装? NTFS交换数据流(Alternate Data Streams, ADS)是NTFS文件系统特有的一种功能,它允许在同一个文件名下存储多个数据流。除了默认的数据流(通常用于存储文…

day3-QT

1>使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函。将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin"&#xff0c;密码是…

Java SPI 机制

SPI 机制的定义 在Java中&#xff0c;SPI&#xff08;Service Provider Interface&#xff09;机制是一种用于实现软件组件之间松耦合的方式。它允许在应用程序中定义服务接口&#xff0c;并通过在类路径中发现和加载提供该服务的实现来扩展应用程序功能。 SPI 机制通常涉及三…

DBA工作经验总结

目录 一、MySQL8.0创建一张规范的表 1.表、字段全采用小写 2.int类型不再加上最大显示宽度 3.每张表必须显式定义自增int类型的主键 4.建表时增加comment来描述字段和表的含义&#xff08;防止以后忘记&#xff09; 5.建议包含create_time和update_time字段 6.核心业务增…

asp程序之“会话Cookie中缺少HttpOnly属性”

先在URL重新模块添加服务器变量&#xff1a; 添加变量名&#xff1a;Add HttpOnly 网站根目录web.config添加如下规则&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <configuration><system.webServer><rewrite><out…

第1篇:Mysql数据库表结构导出字段到Excel(一个sheet中)

package com.xx.util;import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.sql.*; import java.io.*;public class DatabaseToExcel {public static void main(String[] args) throws Exception {// 数据库连接配置String u…

SQLyog图形化工具安装教程

日常开发中&#xff0c;当需要输入的命令较长时&#xff0c;使用命令行客户端工具输入命令很不方便&#xff0c;此时可以使用相对方便的图形化管理工具来操作MySQL&#xff0c;从而提高效率。 SQLyog的特点 1.基于MySQL程序接口开发 2.方便快捷的数据库同步与数据库结构同步 …

【检索稳定|火爆征稿中】2024年企业管理与数字化经济国际学术会议(ICBMDE 2024)

【检索稳定|火爆征稿中】2024年企业管理与数字化经济国际学术会议&#xff08;ICBMDE 2024&#xff09; 2024 International Conference on Business Management and Digital Economy&#xff08;ICBMDE 2024&#xff09; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~…

【算法刷题】链表笔试题解析(1)

一、链表分割 题目描述&#xff1a; 链接&#xff1a;链表分割 题目分析&#xff1a; 这题直接处理并不好做&#xff0c;我们可以构建前后两个链表&#xff0c;将小于x值的结点放在链表a内&#xff0c;将其它结点放在链表b内&#xff0c;这样将原链表遍历完后&#xff0c;原链…

基于springboot+vue+Mysql的闲一品交易平台

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

缓存菜品、套餐、购物车相关功能

一、缓存菜品 通过缓存的方式提高查询性能 1.1问题说明 大量的用户访问导致数据库访问压力增大&#xff0c;造成系统响应慢&#xff0c;用户体验差 1.2 实现思路 优先查询缓存&#xff0c;如果缓存没有再去查询数据库&#xff0c;然后载入缓存 将菜品集合序列化后缓存入red…

如何利用nginx在windows系统上搭建一个文件服务器

1&#xff1a;先下载windows版的nginx 官网 http://nginx.org/ 下载完后注意端口号&#xff08;默认端口号为&#xff1a;80&#xff09;是否被占用 启动nginx服务 地址为localhost的 如果出现 Welcome to nginx 就说明启动成功 2&#xff1a;然后进入conf文件里修改配置 …