首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >活性与片段生命周期

活性与片段生命周期
EN

Stack Overflow用户
提问于 2014-04-11 05:53:04
回答 3查看 33.4K关注 0票数 20

我正在开发使用ActivityFragment的新应用程序。他们之间有什么主要区别吗?

更新

我在Android文档中找到了我想要的好答案。

文档描述

活动和片段之间生命周期中最显著的区别在于如何将其存储在各自的后台堆栈中。默认情况下,活动被放置到系统停止时由系统管理的活动的回堆栈中(这样用户就可以使用back按钮导航回它,就像中讨论的那样)。但是,只有在明确请求在删除片段的事务期间调用addToBackStack()来保存实例时,才会将片段放置到由宿主活动管理的后台堆栈中。

宿主Activity是否保留了与其关联的不同Fragment的不同后台堆栈,以及单个应用程序保留多个堆栈的任何场景。??

EN

回答 3

Stack Overflow用户

发布于 2014-04-11 06:15:21

代码语言:javascript
复制
 Differences between Activity and Fragment lifecyle in Android

片段是活动的一部分,它为该活动贡献了自己的UI。碎片可以被认为是一个子活动。碎片被用来有效地利用更宽屏幕设备中的空间。

根据屏幕大小,活动可能包含0或多个片段。一个片段可以在多个活动中重用,因此它的作用就像活动中的一个可重用组件。

碎片不可能独立存在。它应该是一项活动的一部分。其中的任何片段都可以存在于其中。

片段生命周期比活动生命周期更复杂,因为它有更多的状态。生命周期状态如下所示:

onInflate

在片段生命周期的最开始,调用方法onInflate。在这种方法中,我们可以保存XML布局文件中定义的一些配置参数和一些属性。

onAttach

在这个步骤之后,调用onAttach。一旦片段被“附加”到“父亲”活动,这个方法就会被调用,我们可以用这个方法来存储有关活动的引用。

onCreate

这是最重要的一步,我们的片段是在创造过程中。此方法可用于启动某些线程来检索数据信息,可能是从远程服务器。onCreateView是当片段必须创建视图hierarchy.During时调用的方法--这个方法将膨胀片段内的布局。

在这个阶段,我们不能确定我们的活动是否仍然被创建,所以我们不能指望它来进行某些操作。当在onActivityCreated.中创建并准备好“父”活动时,我们将得到通知。

从现在开始,我们的活动是活动的,我们可以在需要的时候使用它。

onStart

下一步是onStart方法。在这里,我们执行活动onStart中常见的事情,在这个阶段,我们的片段是可见的,但是它还没有与用户交互。

onResume

当片段准备好与用户交互时,调用onResume

然后,活动可能会暂停,因此调用该活动的onPauseonPause片段法也被称为。

在此之后,操作系统决定销毁我们的片段视图,因此调用了onDestroyView。之后,如果系统决定排除我们的片段,则调用onDestroy方法。

在这里,我们应该释放所有的连接活动,等等,因为我们的片段已接近死亡。即使是在毁灭阶段,它仍然依附于父亲的活动。最后一步是将片段从活动中分离出来,然后在调用onDetach时发生。

我希望你能从这一点上理解。

谢谢。

票数 51
EN

Stack Overflow用户

发布于 2014-04-11 05:56:38

直接从开发者片段指南-

片段所在活动的生命周期直接影响片段的生命周期,因此每个活动的生命周期回调都会对每个片段产生类似的回调。

例如,当活动接收到onPause()时,活动中的每个片段都接收到onPause()

但是,片段有一些额外的生命周期回调,用于处理与活动的唯一交互,以便执行诸如构建和破坏片段的UI之类的操作。这些额外的回调方法是:

1) onAttach() =>

当片段与活动相关联时调用(活动在这里传递)。

2) onCreateView() =>

调用以创建与片段关联的视图层次结构。

3) onActivityCreated() =>

当活动的onCreate()方法返回时调用。

4) onDestroyView() =>

在删除与片段关联的视图层次结构时调用。

5) onDetach() =>

当片段与活动断开关联时调用。

一旦activity达到恢复状态,您就可以自由地向activity添加和删除fragments。因此,只有当活动处于恢复状态时,片段的生命周期才能独立地改变。

但是,当activity离开恢复状态时,fragment再次被activity推入其生命周期。

检查Activity and Fragments

票数 11
EN

Stack Overflow用户

发布于 2014-04-11 05:56:40

在某种意义上是相似的。它们都有生命周期,直到它们出现在屏幕上。如果您的活动已关闭,则该活动将在稍后停止并销毁。同样,如果碎片在屏幕上不再可用,它们就会被销毁。但是,由于碎片生活在一个活动中,当其他碎片取代这个片段时,碎片很可能被破坏。因此,它拥有一个相似但独特的生命周期。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23004519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档