Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在片段OnDetch()中为侦听器设置null?_Android_Android Fragments - Fatal编程技术网

Android 在片段OnDetch()中为侦听器设置null?

Android 在片段OnDetch()中为侦听器设置null?,android,android-fragments,Android,Android Fragments,通常在我的片段中,我在onAttach()中附加一个监听器,并在onDetach()中使监听器无效 是否需要在OnDetch()中将侦听器设置为null 虽然我这样做是因为它使代码看起来更加对称,但似乎没有必要这样做,因为片段已经被销毁,因为根据片段的生命周期,onDestroyView()和onDestroy()之前已经被调用过 提前感谢。如果您想通知侦听器已完成的异步任务,但如果片段不再附加,您对结果不感兴趣,这是有道理的。在onPostExecute中,检查侦听器是否仍然存在,如果仍然存在

通常在我的片段中,我在onAttach()中附加一个监听器,并在onDetach()中使监听器无效

是否需要在OnDetch()中将侦听器设置为null

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


提前感谢。

如果您想通知侦听器已完成的异步任务,但如果片段不再附加,您对结果不感兴趣,这是有道理的。在onPostExecute中,检查侦听器是否仍然存在,如果仍然存在,请使用它


因此,是的,至少有一种情况下,将侦听器设置为null是有意义的。

我认为这使GC的工作更容易,但我想你是对的,因为它不是严格必要的。如果您正在使用大量回调,那么您可能会从使用EventBus中获益。只是一个小建议,我知道我很乐意使用它。我使用Square的Otto而不是greenrobot的EventBus.:)好的,我没有这方面的经验,我认为EventBus只是Otto的一个扩展。听起来情况并非如此,对于EventBus,不需要定义回调。我并不是到处都使用Otto。在我有回调的情况下,当然我没有使用Otto.:)