关于其活动的片段生命周期
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。它们是活动和片段生命周期中的回调函数。以上是关于关于其活动的片段生命周期的主要内容,如果未能解决你的问题,请参考以下文章