【问题标题】:Nullify listener in Fragment onDetach()?在片段 onDetach() 中使侦听器无效?
【发布时间】:2014-10-19 16:04:45
【问题描述】:

通常在我的片段中,我在 onAttach() 中附加一个侦听器,并在 onDetach() 中取消该侦听器。

是否需要在 onDetach() 中将监听器设置为 null?

虽然我这样做是因为它使代码看起来更对称,但似乎没有必要,因为片段已经被销毁,因为之前已经根据片段的生命周期调用了 onDestroyView() 和 onDestroy()。

提前致谢。

【问题讨论】:

  • 我认为它使 GC 的工作更容易,除此之外我猜你是对的,因为它不是绝对必要的。如果您使用大量回调,您可能会受益于使用 EventBus 而不是 github.com/greenrobot/EventBus。只是一个小小的建议,我知道我很乐意使用它。
  • 我使用 Square 的 Otto 而不是 greenrobot 的 EventBus。 :)
  • 好吧,没有经验,以为EventBus只是Otto的扩展。听起来情况并非如此,使用 EventBus 就不需要定义回调了。
  • 我没有到处使用 Otto。在我有回调的情况下,我当然没有使用 Otto。 :)

标签: android android-fragments


【解决方案1】:

如果您想通知侦听器已完成的 AsyncTask 但如果不再附加 Fragment 则对结果不感兴趣是有意义的。然后在 onPostExecute 中检查侦听器是否仍然存在,如果存在则使用它。

所以是的,至少有一个用例可以将侦听器设置为 null。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-09
    • 1970-01-01
    相关资源
    最近更新 更多