gpt4 book ai didi

android - Activity 与 fragment 生命周期

转载 作者:IT王子 更新时间:2023-10-28 23:34:03 24 4
gpt4 key购买 nike

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

更新

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

文档描述

The most significant difference in lifecycle between an activity and a fragment is how one is stored in its respective back stack. An activity is placed into a back stack of activities that's managed by the system when it's stopped, by default (so that the user can navigate back to it with the Back button, as discussed in Tasks and Back Stack). However, a fragment is placed into a back stack managed by the host activity only when you explicitly request that the instance be saved by calling addToBackStack() during a transaction that removes the fragment.

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

最佳答案

 Differences between Activity and Fragment lifecyle in Android

Fragment 是 Activity 的一部分,它为该 Activity 贡献自己的 UI。 fragment 可以被认为是一个子 Activity 。 fragment 用于有效利用更宽屏幕设备中的空间。

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

fragment 不能独立存在。它应该始终是 Activity 的一部分。 Activity 可以在没有任何 fragment 的情况下存在。

fragment 生命周期比 Activity 生命周期更复杂,因为它有更多状态。生命周期状态如下图:

enter image description here

onInflate

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

onAttach

在这一步之后 onAttach 被调用。只要 fragment “附加”到“父” Activity ,就会调用此方法,我们可以使用此方法存储有关 Activity 的引用。

onCreate

这是最重要的步骤之一,我们的 fragment 正处于创建过程中。此方法可用于启动某个线程以检索数据信息,可能来自远程服务器。 onCreateView 是在 fragment 必须创建其 View 层次结构时调用的方法。在此方法中,我们将在 fragment 内扩展我们的布局。

在这个阶段,我们不能确定我们的 Activity 是否仍然被创建,所以我们不能指望它进行一些操作。当“父亲” Activity 在 onActivityCreated 中创建并准备就绪时,我们会收到通知。

从现在开始,我们的 Activity 处于 Activity 状态并已创建,我们可以在需要时使用它。

onStart

下一步是onStart方法。在这里,我们像在 Activity onStart 中一样做一些常见的事情,在这个阶段我们的 fragment 是可见的,但它仍然没有与用户交互。

onResume

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

然后可能会发生 Activity 暂停,因此会调用 Activity 的 onPause。那么 onPause fragment 方法也被调用了。

之后,操作系统可能决定销毁我们的 fragment View ,因此调用 onDestroyView。之后,如果系统决定关闭我们的 fragment ,它会调用 onDestroy 方法。

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

希望你能从中理解。

谢谢。

关于android - Activity 与 fragment 生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23004519/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com