Activity与Fragment的生命周期

Activity&Fragment生命周期详解 生命周期,是初学Android必须要掌握的一个知识点,也是面试时最常问的知识点。 阅读详情

Fragment的介绍

Fragment:碎片、片段,碎片表示轻量级和灵活,是开发android平板电脑必须掌握的技术。其将界面UI进行分块,以块的方式组织UI,完全可以达到界面UI组件的复用。

  1. 它在一个activity里面表示一个行为或者用户接口的一部分。
  2. 我们可以将不同的Fragments组合起来放到一个activity中,或者在不同的activity中重用一个fragment。你可以将一个fragment看成是一个activity中的一个片段,它有自己的生命周期(如何从创建到销毁),接受它自己的输入事件,并且可以在activity运行时动态的添加或者移除一个fragment。
  3. 一个fragment必须总是绑定到一个activity中,虽然fragment有自己的生命周期,但同时也被它的宿主activity的生命周期直接影响。
    • 比如,当一个activity暂停的时候,它里面所有的fragments也同样暂停。
    • 当activity销毁的时候,它里面所有的fragment同样也被销毁。
    • 然而,当一个activity正在运行(它处于resumed生命周期的时候),我们可以独立的操纵每个fragment执行注入添加和移除它们。
    • 另外,当你执行一个fragment操作的时候,你可以将它添加到一个历史栈里面去,这个栈是由它的宿主activity维护,每一个栈里面的元素都是一个已经被执行过的fragment。这个堆栈可以让我们通过返回键来恢复之前的fragment。
  4. fragment可以定义自己的布局文件(layout),当然其也可以没有自己的UI。
  5. 当你将一个fragment作为activity的布局文件的一部分添加进去的时候,它就在activity的视图层次中的ViewGroup中。
    • 可以通过在activity的layout中定义<\fragment>元素来定义一个类中的fragment。
    • 或者在代码中将其添加到当前的ViewGroup(视图组合,或者称为视图元素组合)中。注意:一个fragment并不一定要求是activity布局文件的一部分,我们也可以使用一个没有自己UI的fragment,作为一个activity不可见的一部分。
    • 需要android-support-v4.jar包。可以通过SDK Manager下载AndroidSupport Package,在Extras目录下的Android Support。使用时你需要在项目代码顶层创建libs文件夹,并将该jar库文件拷贝到libs里面去。

Activity的生命周期

这里写图片描述

Fragment的生命周期

这里写图片描述

Fragment与Activity生命周期的联系

这里写图片描述

例子

MainActivity代码:

package com.xqq.fragment;

import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;

public class MainActivity extends FragmentActivity {
   
   

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        System.out.println("Activity  onCreate");
    }

    public void click(View view){
        Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
        startActivity(intent);
    }

    @Override
    protected void onStart() {
        System.out.println("Activity  onStart");
        super.onStart();
    }

    @Override
    protected void onResume() {
        System.out.println("Activity  onResume");
        super.onResume();
    }

    @Override
    protected void onPause() {
        System.out.println("Activity  onPause");
        super.onPause();
    }
    @Override
    protected void onRestart() {
        System.out.println("Activity  onRestart");
        super.onRestart();
    }
    @Override
    protected void onStop() {
        System.out.println("Activity  onStop");
        super.onStop();
    }
    @Override
    
ActivityFragment生命周期详解 在安卓中ActivityFragment是非常相似的两个类,它们各自都拥有自己的生命周期,且都可以用来显示布局文件中的视图。其中Activity是通过setContenView()显示视图,而Fragment是通过在onCreateView()中将布局xml文件解析为一个View然后返回该View来显示视图,也正因为具备相似的功能,所以它们的生命周期也极为相似,熟练掌握它们的生命周期是做出高效稳 阅读详情

相关推荐

Fragment一)Fragment生命周期如何Activity联动?

总而言之,Fragment生命周期Activity生命周期的精细投影,二者紧密耦合。这种联动关系要求开发者必须清晰地知道在哪个Fragment回调中执行何种操作是安全的。视图初始化在中完成。数据初始化观察在中进行,并利用LifecycleOwner自动管理订阅生命周期。视图引用清理在中完成,这是防止内存泄漏的生命线。使用ViewModel来持有数据,完美解耦数据UI的生命周期,并优雅地处理配置变更。

augfun的博客 630

ActivityFragment生命周期总结以及保存实例状态机制

ActivityFragment生命周期,以及当它们被非正常销毁时的解决方案,案例简单易吸收,很细腻,很保姆式,适合新手

XJ200012的博客 994

大模型微调框架之TRL

近年来,大语言模型(LLMs)的快速发展推动了下游应用的繁荣,但如何高效地对这些模型进行对齐微调,依然是研究应用的热点。Hugging Face 开源的 TRL(Transformer Reinforcement Learning) 框架,提供了基于强化学习的语言模型训练方法,并支持 SFT(监督微调)、PPO(近端策略优化)、DPO(直接偏好优化)等多种方式,是目前对齐微调 LLM 的重要工具。

和大家一起涨芝士 874

Android ActivityFragment生命周期变化

Q1: ActivityFragment生命周期如何联动?答创建阶段Activity的onCreate()触发FragmentActivity的onStart()触发Fragment的前台交互Activity的onResume()触发Fragment的onResume()Activity的onPause()触发Fragment的onPause()后台阶段Activity的onStop()触发Fragment的返回时Activity的触发Fragment的销毁阶段Activity的。

qq_45906596的博客 1143

Activity&Fragment生命周期

Activity生命周期 先来看张官方说明图 详细解读每个方法的调用场景 onCreate():当创建启动时调用 onStart():当处于可见状态时调用 调用场景:Activity启动:onCreate()->onStart()->onResume onResume () 调用场景: 1.当MainActivity第一次启动时:onCreate()->onStart()->onResume ; 2.“The activity comes to the foregrou

xuyin1204的博客 2666

ActivityFragment生命周期

1.活动的生命周期 Android类中定义了七个回调方法分别是: 1. onCreate( ) 活动第一次创建时调用,在这个方法中进行初始化操作。 2. onStart( ) 这个实在活动又不可见到可见的时候调用。 3. onResume( ) 在活动准备好用户交互的时候调用,此时活动已经位于返回栈的顶端,并且处于运行状态。 4. onPause( ) 系统准备去启动另一个或者恢复另一...

nishuosh2的博客 1237

Activity & Fragment 生命周期

Fragment生命周期 Activity生命周期类似,但也有其独特之处。

mantouzai的博客 889

Fragment生命周期以及Activity生命周期联动

在学Fragment之前肯定学过了ActivityActivity有属于自己的生命周期Fragment基本上activity 大体一样,但是有自己特有的生命周期方法,下面我们一起来看一下。 说白了主要看两张图,运行代码: 一. Fragment生命周期 二. Activity生命周期的对比 三. 场景演示

jkdev 4642

ActivityFragment生命周期

Activity生命周期 Activity生命周期中有7个方法,Fragment生命周期中有11个方法 ActivityFragment生命周期对比 Activity生命周期中除了以下6个方法外还有一个restart()方法,该方法在该Activity从不可见(仍存在)到重新可见时调用 代码 package com.example.asus.animport; import andro...

tianyaluqingchen的博客 1719

ActivityFragment一起的生命周期

1 背景 之前学习Fragment以及Activity生命周期都是分开学习的,而两个一起的生命周期自己只知道Fragment生命周期是依赖Activity的.最近接触到了一些东西,需要对这部分的内容了解一下,也就想写个blog把这些内容给记录下来,毕竟android的东西还是很多很细的.好记性不如烂笔头啊! 2 实现方式 Activity中两种调用Fragment的方式: 第一种:...

u011379195的专栏 426

Fragment Activity 生命周期对比

一、Activity生命周期图:  Activity 生命周期" style="margin:0px; padding:0px; border:0px none; list-style:none; max-width:100%"> 二、Fragment生命周期 Activity 生命周期" style="margin:0px; padding:0px; border:0

李白的号的博客 567

Fragment生命周期状态及各回调函数的深入理解

一、Fragment生命周期 二、FragmentActivity生命周期各状态的对比 三、Fragment各回调函数的流程化调用 就像Activity一样,Fragment也有自己的一套生命周期。只有理解Fragment生命周期过程中每个回调函数的调用过程,才能够使你在他们销毁之前保存它们实例,这样在他们重新创建时,就能够恢复他们之前的状态。 1.onAttach()

寒风的博客 6793

Android面试(5): Activity生命周期 Fragment生命周期比较

1.Activity生命周期图                                                            2.Fragment生命周期图                                                                    3.Activity Fragment生命周期对比       ...

丶一个有梦想的老实人 的博客 1404

Activity生命周期以及Fragment

主要介绍了 • Activity状态 • Activity生命周期Activity的启动模式 • Fragment

简单点的博客 1016

Android:Fragment生命周期(结合Activity生命周期进行分析)

文章目录前言一、Fragment生命周期启动自我结合Activity二、使用步骤1.引入库2.读入数据总结 前言 本文记录笔者学习Fragment生命周期的心路历程 一、Fragment生命周期 在这一部分中,我们单纯以Fragment为观察对象,观察其生命周期Android开发平台的官方文档中,对Fragment生命周期有如下的描述 尽管 Fragment生命周期其拥有的活动相关联,但它在标准活动生命周期上也有自己的缺陷。它包括基本的活动生命周期方法,例如onResume(),但活动交互

qjyws的博客 9992

Android Activity生命周期以及Fragment生命周期的区别分析

Android Fragment生命周期图: Activity生命周期图: 对照图: Fragment生命周期分析: 1. 当一个fragment被创建的时候,它会经历以下状态. onAttach() onCreate() onCreateView() onActivityCreated() 2. 当这个fragment对用户可见的时候,它会经历以下状态...

weixin_30467087的博客 327

ActivityFragment同时运行时生命周期执行顺序探究

官方说明 Fragment在开发中是替代Activity的一种轻量级界面,它的生命周期如下图所示 Activity对应的生命周期如下图所示 现要研究的是当Activity生命周期变化会让Fragment生命周期发生什么样的变化. 在activity的layout中放置一个fragment,让其在界面打开时自动加载,然后再放置一个framelayout用以动态加载...

pigdreams的博客 9661

3DGS实战笔记:从相机坐标系到屏幕像素,手把手推导高斯椭球的投影变换矩阵

本文详细解析了3D高斯散射(3DGS)技术中从相机坐标系到屏幕像素的几何变换过程,重点推导了高斯椭球的投影变换矩阵。通过视图变换、投影变换视口变换的完整流程,结合雅可比矩阵处理协方差矩阵,实现了高效的三维重建渲染。文章提供了Python代码示例,帮助开发者深入理解3DGS的核心几何变换机制。

weixin_28691741的博客 410

高通QCOM camera Pipeline可视化工具 1.4版本

高通QCOM camera Pipeline可视化工具 1.4版本

上一篇: 浏览器访问网页的详细内部过程
下一篇: Android通用流行框架大全
夏倩倩
博客等级 码龄12年 27粉丝 59原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值