gpt4 book ai didi

java - 是否有必要在分离时将 Fragment 接口(interface)监听器设置为 null?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:55:03 24 4
gpt4 key购买 nike

在涉及回调的Fragment示例中,通常他们在onAttach方法中分配监听器,然后在onDetach方法中将监听器设置为null。

这最后一部分是必要的吗?当 fragment 被分离/销毁时,监听器不会自动设置为 null 吗?或者在某些情况下,您可能会分离 fragment 并将其重新附加到其他地方,并且您不希望回调指向任何特定的东西,直到它重新附加到某个东西上?

最佳答案

我从未将监听器引用显式设置为 null,因为在大多数情况下它不会产生任何影响。

以下是对您其他问题的一些说明:

  • 当 fragment 分离/销毁时,监听器不会自动设置为空吗?并不真地。 onDetach()onDestroy() 反射(reflect)的是组件生命周期,而不是对象生命周期。那里不会自动发生任何事情。当您的 fragment 实例被垃圾回收时,对监听器的引用将随之销毁。如果这是对您的监听器的唯一引用,它也有资格进行垃圾回收。
  • 或者在某些情况下,您可能会分离 fragment 并将其重新附加到其他地方,并且您不希望回调指向任何特定的东西,直到它被重新附加到某个东西上?我会说这是极不可能的。在正常用例中,您必须在 onAttach() 中分配监听器,因此您确定可以正确地委托(delegate)事件。在 onDetach() 之后,您将不会收到任何需要委派的事件,直到您重新附加该 fragment 。而且,如果您重新附加它,那么您将拥有正确的监听器实例,因为您已经在 onAttach() 中处理了它。

关于java - 是否有必要在分离时将 Fragment 接口(interface)监听器设置为 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37030835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com