活动和片段之间有什么区别?


80

根据我的研究,backstack的概念及其存在方式存在显着差异:

活动

  • activity放到的位置backstackactivities,用户只需按一下back 按钮即可导航回到上一个活动。

  • Activity 可以独立存在。

分段

  • 将anfragment放置到活动中后,我们必须通过addToBackstack()在期间调用来请求保存实例fragment transaction

  • Fragment 必须住在里面 activity

还有其他区别吗?


8
片段不需要在清单中声明。我们有嵌套的片段,但不能有嵌套的活动
hoomi 2014年

Answers:



35

活动和片段之间的主要区别

  1. 活动是提供用户界面的应用程序组件,用户可以在其中进行交互。该片段是活动的一部分,它为该活动贡献自己的UI。
  2. 对于Tablet平板电脑或移动设备在横向的情况,则使用片段我们可以显示两个列表,例如显示状态名称的唯一列表,其他列表将在单个活动中显示状态描述,但是使用“活动”我们不能做同样的事情。
  3. 活动不依赖于片段,但是片段依赖于活动,它不能独立存在。
  4. 如果不在Activity中使用片段,则无法创建多窗格UI。但是在一个活动中使用多个片段,我们可以创建多窗格UI。
  5. 如果仅使用活动创建项目,则很难管理,但是如果使用片段,则项目结构会很好,并且可以轻松处理。
  6. 一个活动可能包含0个或多个片段。片段可以在多个活动中重用,因此它就像活动中的可重用组件一样。
  7. 活动具有自己的生命周期,而片段具有自己的生命周期。
  8. 对于活动,我们只需要在清单中提及,但对于片段则不需要。
  9. 活动占用了很多内存,而该片段是不使用内存的。
  10. 活动量不轻。碎片是轻重量。

很好的解释。
Abhishek kumar

有人可以详细说明#10。与活动相比,是什么使片段轻巧?
dazzieta

#7没有道理:-\
t3chb0t

22

根据android开发人员文档,片段和活动生命周期之间的差异。

Doc链接http://developer.android.com/guide/components/fragments.html#Lifecycle

活动和片段之间在生命周期上最显着的区别是,活动是如何存储在其各自的后堆栈中的。默认情况下,将活动置于活动停止的活动的后堆栈中,该活动由系统在系统停止时进行管理(以便用户可以使用“后退”按钮导航回该活动,如“任务和后堆栈”中所述)。但是,只有在删除碎片的事务期间通过调用addToBackStack()显式请求保存实例时,才会将碎片放入由主机活动管理的后台堆栈中。

否则,管理片段生命周期与管理活动生命周期非常相似。因此,用于管理活动生命周期的相同做法也适用于片段。但是,您还需要了解的是活动的寿命如何影响片段的寿命。

&对于多窗格布局,您必须使用fragment无法使用的布局activity


19

活动是用户可以通过其进行交互的应用程序的UI,而Fragment是活动的一部分,它是活动内部的子活动,它具有自己的生命周期,该生命周期与活动生命周期平行。

Activity LifeCycle                           Fragment LifeCycle
onCreate()                                     onAttach()
    |                                              |
onStart()______onRestart()                     onCreate()
    |             |                                |
onResume()        |                            onCreateView()
    |             |                                |
onPause()         |                            onActivityCreated()
    |             |                                |
onStop()__________|                             onStart()
    |                                              |
onDestroy()                                    onResume()
                                                   |
                                                onPause()
                                                   |
                                                onStop()
                                                   |
                                              onDestroyView()
                                                   |
                                               onDestroy()
                                                   |
                                               onDetach()

5

活动
1.活动是Android平台上应用程序的基本组成部分之一。它们充当用户与应用程序交互的切入点,并且对于用户如何在应用程序内或应用程序之间导航也很重要
。2.生命周期方法由OS托管。
3.活动的生命周期

片段
1.片段表示活动中的行为或用户界面的一部分。您可以在一个活动中组合多个片段以构建多窗格UI,并在多个活动中重用一个片段。您可以将片段视为活动的模块化部分,它具有自己的生命周期,接收自己的输入事件,并且可以在活动运行时添加或删除它。
2.托管的生命周期方法由托管活动托管。
3.片段的生命周期

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.