首页 > 其他分享 >Activity和Fragment有什么区别

Activity和Fragment有什么区别

时间:2024-07-03 11:09:29浏览次数:14  
标签:生命周期 java 区别 Fragment 启动 通常 Activity

 

Activity 和 Fragment 是 Android 应用开发中两个非常重要的组件,它们都有各自的生命周期方法,包括 onCreate。然而,它们有一些关键的区别:

Activity
独立性: Activity 是一个独立的、可直接启动的组件。它通常代表应用的一个单一屏幕(界面)。
生命周期: Activity 有自己的完整生命周期(onCreate, onStart, onResume, onPause, onStop, onDestroy 等)。
启动方式: 可以通过意图(Intent)直接启动一个 Activity。
资源消耗: 由于每个 Activity 都是一个独立的组件,过多的 Activity 可能会导致应用变得复杂并增加资源消耗。
用途: 通常用于实现应用的主要功能界面。


Fragment
依赖性: Fragment 是一个可嵌入 Activity 中的 UI 片段,不能独立存在。
生命周期: Fragment 有自己的生命周期,但它是依赖于宿主 Activity 的生命周期的。
启动方式: 不能直接启动一个 Fragment,必须将其附加到一个 Activity。
资源消耗: 通常比 Activity 更轻量级,更适用于复用和组合。
用途: 通常用于实现复杂的 UI 结构,如选项卡、侧滑菜单等。


文件位置
Activity 通常位于 src/main/java/[your-package-name]/ 下,并且继承自 AppCompatActivity 或 Activity。
Fragment 也通常位于 src/main/java/[your-package-name]/ 下,但是继承自 Fragment。


示例
MainActivity.kt 或 MainActivity.java 通常用于定义 Activity。
MyFragment.kt 或 MyFragment.java 用于定义 Fragment。
这两者之间的主要区别在于它们的用途、依赖性和生命周期。您可以根据应用的需求来选择使用哪一个。

 

原文链接:https://blog.csdn.net/m0_57236802/article/details/132805758

标签:生命周期,java,区别,Fragment,启动,通常,Activity
From: https://www.cnblogs.com/huangzs/p/18281220

相关文章

  • Python面试题:Python 中的列表和元组有什么区别?
    Python中的列表和元组的主要区别如下:可变性:列表(List):可变,意味着可以改变列表的内容(添加、删除或修改元素)。元组(Tuple):不可变,一旦创建后,不能修改其内容。语法:列表使用方括号[]创建。例如:my_list=[1,2,3]元组使用圆括号()创建。例如:my_tuple=(1,2,3)性能:......
  • 本地资源(local resource)与项目资源文件(project resource)的区别
    导入“本地资源”的图片,会在Form文件下面的Form.resx文件里面,不可以在多个Form界面引用,不可以在里面修改图片的名称;导入“项目资源文件”的图片,会保存在Properties文件夹下面的Resources.resx文件夹里面,可以在多个form界面引用,可以在里面修改图片的名称。注意:Resources.rexs......
  • c语言函数指针和指针函数的区别及代码示例
    c语言函数指针和指针函数的区别及代码示例在C或C++中,函数指针和指针函数是两个容易混淆但本质不同的概念。理解它们的区别对于深入掌握C/C++的指针和函数特性至关重要。1.函数指针定义:函数指针是指向函数的指针。它存储了函数的地址,通过它可以调用该函数。语法:返回类型(*指......
  • 字符串的类区别、自动扩容、深浅拷贝
    1、stringstringBufferstrngBuilder区别可变性:string中的vlaue值是final修饰的,是一个不可变的类,每一次修改string的值的时候,都会产生一个新的对象。而stringBuffer和strngBuilder是一个可变类。字符串的变更不会产生新的对象。线程安全性:string是一个不可变的类,所......
  • 使用 LEFT JOIN 时,将条件写在 ON 子句和 WHERE 子句的区别
    1.条件写在ON子句中当条件写在ON子句中时,条件会在进行连接操作时立即应用。这意味着只要左表中的行存在,不论右表中的行是否满足条件,左表的行都会包含在结果集中。如果右表中的行不满足条件,结果集中会显示右表的列为空。示例SELECT*FROMt_useruLEFTJOINt_user_role......
  • 单元测试@BeforeAll和@BeforeEach的区别
    @BeforeAll和@BeforeEach是JUnit5中的注解,用于在执行测试方法之前执行某些操作。@BeforeAll注解表示在所有测试方法执行之前执行一次,并且必须是静态方法。通常用于初始化测试环境,例如启动一个数据库连接池或者读取测试数据文件。@BeforeEach注解表示在每个测试方法执......
  • BAPI 和 RFC 的区别
    BAPI和RFC的主要区别RFC:是SE37写出来的其中可以远程调用的叫rfc,remote-enabledfunction,abap语法和输入输出参数就会有一些限制。BAPI:是SAP做好的实现待定业务操作的RFC。RFC:是面向过程的,调用简单直接;BAPI:是面向对象的,有属性,方法,有事件。更加的复杂和丰富,更能反映sa......
  • MARD和MARDH的区别
    MARD里记载的是当前库存的数量,但是期间并不一定是当月。比如你物料4月一整月都没有库存数量变化(没收没发),那么5月初你看MARD里的条目期间数还是4月而非5月。当某个期间发生货物移动的时候,系统在更新mard数据的之前(这个表是实时更新的),会检查此笔业务过账期间和mard里对应记......
  • ABAP工作区,内表,标题行的定义和区别
    工作区域跟变量一样,是用来保存数据的。区别是变量只能从中保存一个数据。而工作区域可以存放多个。把多个数据合在一起就成工作区域了。下面我们来看看工作区域是如何定义的吧。定义有四种方法,如下:1,直接定义DATA:BEGINOFWA_EKBE,MATNRTYPEMARA-MATNR,MAKTXTYPEMA......
  • 12.阻塞赋值与非阻塞赋值语句的区别和规范
    (1)阻塞赋值“=”  直到现行的赋值语句完成,才允许下一条赋值语句的执行,在串行块(begin-end)中,各赋值语句将以它们在顺序块中的排列次序依次执行。(2)非阻塞赋值“<=”    在赋值开始时,计算赋值号右边的语句,赋值结束时,更新赋值号左边的语句,因此其他在同一时间的语句都会......