android - 从活动调用完成会破坏托管片段吗?
Posted
技术标签:
【中文标题】android - 从活动调用完成会破坏托管片段吗?【英文标题】:android -does calling finish from activity destroy hosted fragment? 【发布时间】:2014-10-14 08:35:21 【问题描述】:我有一个托管“片段 B”的“活动 A”。请确认如果我调用 A.finish() 则“片段 B”会被销毁。片段 B 已经添加到片段管理器中。我意识到一个片段是一个子活动,但我想知道我是否必须告诉片段管理器在 Ondestroy 中释放片段还是全部处理好?
【问题讨论】:
【参考方案1】:but i want to know do i have to tell the fragment manager to
release the fragment in Ondestroy or is it all taken care of ?
默认情况下,当您在活动中调用finish
时,它会自动调用附加到活动的所有片段的onDestroy
方法,从而销毁它,因此无需担心销毁您活动的onDestroy
方法中的片段。
来自documentation:
For example, when the activity is paused, so are all fragments in it,
and when the activity is destroyed, so are all fragments.
【讨论】:
【参考方案2】:片段是活动的子活动。因此,每当我们调用完成时,与之关联的片段也会在不通知 FragmentManager 的情况下被销毁。
【讨论】:
【参考方案3】:是的,片段被销毁了。来自android Fragment guide:
比如activity暂停的时候,里面的所有fragment也是, 当 Activity 被销毁时,所有 Fragment 也会被销毁。
【讨论】:
人们应该使用 onDestroy 还是 onDestroyView ?并且每个人都可以通过 getActivity 获得活动吗? @android 开发者 ondestroyview 当活动仍在内存中时很好。片段视图是从内存中释放出来的,但片段对象本身仍然存在,直到调用 ondestroy。以上是关于android - 从活动调用完成会破坏托管片段吗?的主要内容,如果未能解决你的问题,请参考以下文章