当前位置: 首页 > 面试题库 >

是否需要在分离时将Fragment接口侦听器设置为null?

别峻
2023-03-14
问题内容

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

这最后一部分是必要的吗?片段被分离/销毁时,监听器是否不会自动设置为null?还是在某些情况下,您可能会分离该片段并将其重新附加到其他位置,并且您不希望回调指向特定的内容,直到它重新附加至某个内容?


问题答案:

我从来没有明确地将监听器引用设置为null,因为在大多数情况下它不会有所作为。

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

  • 片段被分离/销毁时,监听器是否不会自动设置为null?并不是的。onDetach()onDestroy()反映组件的生命周期,而不反映对象的生命周期。那里什么也不会自动发生。当片段实例被垃圾回收时,对监听器的引用将被破坏。如果这是对您的侦听器的唯一引用,则也可以进行垃圾回收。
  • 还是在某些情况下,您可能会分离该片段,然后将其重新连接到其他位置,并且您不希望回调指向特定的内容,除非它重新连接至某个内容?我会说这不太可能。在正常使用情况下,您必须在中分配侦听器onAttach(),以确保可以正确委派事件。之后onDetach(),您将不会收到任何需要委派的事件,直到您重新附加该片段为止。而且,如果您重新连接它,那么您将拥有正确的侦听器实例,因为您已经在中进行了处理onAttach()


 类似资料:
  • 在涉及回调的片段示例中,通常他们在onAttach方法中分配侦听器,然后在onDetach方法中将侦听器设置为null。 最后一部分有必要吗?当片段被分离/销毁时,侦听器不会自动设置为null吗?或者,在某些情况下,您可能会分离片段并将其重新附加到其他地方,并且在它重新附加到某个对象之前,您不希望回调指向任何特定的对象?

  • 问题内容: 按下手机上的按钮时,我想执行自定义操作。 是否可以在按钮上设置onClickListener(或类似按钮)? 仅在第一次按下按钮时才被调用-我已经尝试过了。 问题答案: 通常,您不应因为用户期望菜单出现而覆盖行为,但是您可以沿以下方式使用:

  • 我要做的是设置一个SOCKS服务器,然后将其端口添加为SSH隧道连接中的本地侦听端口。我想要实现的是动态端口转发(如果我没记错的话,ssh中的-d选项)。我使用JSch进行SSH隧道。以下是我到目前为止的代码(从http://kahimyang.info/kauswagan/code-blogs/1337/ssh-tunneling-with-java-a-database-connection-

  • 我决定为Android制作最低API版本21,但这是否意味着不再使用AppCompat了?只是使用普通的材料设计/没有AppCompat/等?

  • 说明: 配置为侦听端口8080的Tomcat连接器启动失败。端口可能已经在使用中,或者连接器可能配置错误。 和错误端口问题

  • 问题内容: 接口是100%抽象的类,因此我们可以使用接口进行高效编程。在任何情况下,抽象类都比接口更好吗? 问题答案: 当您确实想创建一个具体的类,但要确保所有子类中都存在某种 公共状态 ,或者某些操作可能具有某种 公共实现 时,可以使用抽象类。 接口不能包含任何一个。