何时手动附加/分离Android碎片?

何时手动附加/分离Android碎片?,android,android-fragments,Android,Android Fragments,我已经深入阅读了这篇文章,但我没有看到任何关于或方法的引用。然而,我发现了多个教程和演示,他们实际使用它们(如)。我的问题是: 从理论上讲,您应该在什么时候手动连接/断开碎片 当碎片被附着/分离时,会发生什么?(是否创建/销毁?暂停/恢复?等等) 用手连接/分离碎片是一种好的做法吗 谢谢大家! Android开发团队正在推动碎片作为前进的方向。他们介绍的原因在网上的很多地方都有记录,我在这里就不赘述了。引入它们的一个原因是允许开发人员将其应用程序的特定功能封装到(几乎)独立模块中,这些模块可以根

我已经深入阅读了这篇文章,但我没有看到任何关于或方法的引用。然而,我发现了多个教程和演示,他们实际使用它们(如)。我的问题是:

  • 从理论上讲,您应该在什么时候手动连接/断开碎片
  • 当碎片被附着/分离时,会发生什么?(是否创建/销毁?暂停/恢复?等等)
  • 用手连接/分离碎片是一种好的做法吗

  • 谢谢大家!

    Android开发团队正在推动碎片作为前进的方向。他们介绍的原因在网上的很多地方都有记录,我在这里就不赘述了。引入它们的一个原因是允许开发人员将其应用程序的特定功能封装到(几乎)独立模块中,这些模块可以根据需要进行加载和卸载,并最大限度地扩大Android平台可用的设备屏幕范围

    不幸的是(以我的拙见),片段中有一些微妙之处,可以抓住粗心的开发人员(我就是其中之一)。虽然我不能声称自己是碎片方面的权威,但我可以将我在使用它们时发现的东西传递给他人。因此,要回答您的问题:

    我不相信有任何硬性规定,你应该
    attach()/detach()
    fragments手工。然而,在某些情况下,您可能希望分离一个片段,而不是用另一个片段替换它。然而,请注意,这并不会破坏文件中所述的片段

    从UI分离给定片段。这与将其放在后堆栈上时的状态相同:片段已从UI中删除,但其状态仍由片段管理器主动管理。进入此状态时,其视图层次结构将被破坏

    片段对象已销毁,但可见元素(如果有)已被删除。使用
    attach()
    重新附加片段时,将重新创建其视图层次结构():

    在先前使用detach(fragment)从UI分离片段后,重新附加该片段。这将导致其视图层次结构被重新创建、附加到UI并显示

    正如我所发现的,如果背景中的片段需要更新其视图层次结构,以便在返回视图时立即更新,那么这并不是特别有用。最终的结果是,你得到了一个'丑陋'的重新绘制你的碎片。我的意思是丑陋,因为它让你的应用程序看起来像是匆匆忙忙地、非专业地重新绘制自己,而不是一个更令人满意的“随时准备起飞”的流畅画面

    如果维护最新的片段UI是至关重要的,那么有一些方法可以避免这种重新绘制。你不需要附加和分离你的碎片,你只需要简单地把它们放在一起。这避免了视图层次结构的重新创建,但是您必须小心,当片段被隐藏时,视图中没有任何内容试图重新绘制自身;这将导致一个例外(我想,我已经有一段时间没有修改过这个东西了)

    手动附加和分离片段并没有什么错,您可能应该认为这些方法是由Android开发人员“以防万一”提供的,您需要这样做。此外,我还通过image
    replace()
    调用了这些更“原子”的方法

    当片段被销毁时,显然当应用程序关闭时它们会被销毁,但除此之外,我怀疑它们只是落入了正常的垃圾程序(但不要引用我的话!)。i、 e.如果没有对该对象的引用,则该对象被标记为销毁。

    术语“手动”令人困惑!!