关于其活动的片段生命周期

Posted

技术标签:

【中文标题】关于其活动的片段生命周期【英文标题】:Fragment lifecycle with respect to it's activity 【发布时间】:2011-11-21 17:58:32 【问题描述】:

情况 我的活动等待异步操作,在收到异步操作的回复后,它需要将信息传递给其中的 2 个片段。

要求 1. 两个片段都需要调用onCreateView 才能加载布局, 2. 他们需要自己关注他们的活动,这样getActivity() 才能发挥作用。

我在两个片段中都编写了setData() 方法,并正在寻找活动生命周期中的“正确”位置来调用它们。

活动的onCreate()不起作用,活动的onStart()不起作用,片段的onStart()不起作用。

没有任何效果,我在这里缺少什么?

【问题讨论】:

【参考方案1】:

the Fragment lifecycle 的官方文档清楚地解释了这一点 - 请参考它,如果有不清楚的地方,请提出后续问题。

【讨论】:

谢谢,我不知道我是怎么错过的。 我有 Activity1--->Fragment1--->(Nested)fragment2Activity2 当我在 Activity2 上时我按下返回按钮 fragment2(Activity1) 当时我需要知道在 fragment2 中触发了哪种方法?我只想在用户单击 Activity2 上的后退按钮时刷新 fragment2 内容! @LOG_TAG: "onResume" 将被触发。【参考方案2】:

此图片将有助于同时了解两个生命周期。

正如许多人抱怨的那样,这个生命周期太复杂的说法有些合理,在 Google I/O 2018 中,他们建议使用架构组件框架。请检查此Docs

【讨论】:

为什么,谷歌,为什么?这就是为什么没有人喜欢片段:D【参考方案3】:

当你在Activity2---->backpress--->Fragment2(Activity1)---意味着Activity1再次从fragment2附加等等OnAactivityCreated()方法Activity1完全加载....所以我们可以调用setData()方法你的活动1...

【讨论】:

【参考方案4】:

onAttachFragment()-activity 在 onCreate()-activity 之前和 onAttach()-fragment 之后调用

【讨论】:

【参考方案5】:

在片段的 onStop 上调用 onDestroy。这应该在片段启动时调用 onCreate。 让我知道是否可以作为您问题的理想解决方案。

【讨论】:

不应调用 onDestroy 和 onStop。它们是活动和片段生命周期中的回调函数。

以上是关于关于其活动的片段生命周期的主要内容,如果未能解决你的问题,请参考以下文章

关于Activity和Fragment生命周期的问题

活动和片段之间的生命周期

如何让自定义视图观察包含片段的生命周期事件而不是活动?

关于片段生命周期,何时调用片段的 onActivityResult?

Android片段生命周期:onResume调用了两次

了解活动生命周期