目前在活动中包含以下代码
//declaration
public Android.Widget.Button logInButton;
//assigning
logInButton = FindViewById<Android.Widget.Button>(Resource.Id.loginButton);
logInButton.Click += logInButton_Click;
然后在我的OnDestroy方法上执行以下内存分配。
logInButton.Click -= logInButton_Click;
logInButton = null;
GC.Collect();
我在OnDestroy上做的事情真的有必要还是过度杀人?
只是将按钮设置为null并调用垃圾回收器会得到相同的结果吗?
答案 0 :(得分:2)
你不需要这样做。尤其不适用于没有任何静态上下文引用的点击侦听器到另一项活动(首先是不好的)。除此之外,无法保证始终会调用onDestroy()
。你不应该依赖它,并使用其他生命周期钩子做一些取消注册,例如从观察者列表或类似。
简而言之:您不需要为您的案件做到这一点。