【问题标题】:android -does calling finish from activity destroy hosted fragment?android - 从活动调用完成会破坏托管片段吗?
【发布时间】:2014-10-14 08:35:21
【问题描述】:

我有一个托管“片段 B”的“活动 A”。请确认如果我调用 A.finish() 则“片段 B”会被销毁。片段 B 已经添加到片段管理器中。我意识到一个片段是一个子活动,但我想知道我是否必须告诉片段管理器在 Ondestroy 中释放片段还是全部处理好?

【问题讨论】:

    标签: android fragment fragmentmanager fragment-lifecycle


    【解决方案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。
        猜你喜欢
        • 2021-02-05
        • 1970-01-01
        • 1970-01-01
        • 2012-09-20
        • 1970-01-01
        • 1970-01-01
        • 2020-05-11
        • 1970-01-01
        • 2014-09-01
        相关资源
        最近更新 更多