草庐IT

kReference

全部标签

c# - 使用 Wea​​kReference 解决 .NET 未注册事件处理程序导致内存泄漏的问题

问题:已注册的事件处理程序创建了从事件到事件处理程序实例的引用。如果该实例无法注销事件处理程序(大概是通过Dispose),那么垃圾收集器将不会释放实例内存。例子:classFoo{publiceventActionAnEvent;publicvoidDoEvent(){if(AnEvent!=null)AnEvent();}}classBar{publicBar(Fool){l.AnEvent+=l_AnEvent;}voidl_AnEvent(){}}如果我实例化一个Foo,并将其传递给一个新的Bar构造函数,然后释放Bar对象,由于AnEvent注册,它不会被垃圾收集器释放。我认

android - 我应该在 AsyncTask 中使用 Wea​​kReference<Context> 还是 Application Context?

我有点进退两难,希望大家能帮帮我。如你所见,我有一个AsyncTask我在其中保存了一些代码Bitmap将对象作为.jpg文件添加到图库中。在AsyncTask我也在使用Context,但据我所知,使用Activity的上下文在这个内部类中可能会导致内存泄漏,所以我将其更改为WeakReferenceweakContext;所以垃圾收集器可以收集它。但是通过使用Application我从传递的View中获得的上下文从构造函数我应该归档与弱上下文引用相同的效果那么在这种情况下使用哪个更好呢?publicclassViewToBitmap{privateViewview;privateWe

android - 为什么在 Android Listeners 上使用 Wea​​kReference?

我正在处理一个大型代码库,并且在很多地方看到这种类型的代码:publicstaticclassRequestCustomDataimplementsView.OnClickListener{WeakReferencemainActivity;publicRequestCustomData(MainActivityactivity){mainActivity=newWeakReference(activity);}@OverridepublicvoidonClick(Viewview){MainActivityactivity=mainActivity.get();activity.re

android - 我需要为循环依赖使用 Wea​​kReference 吗?

我们在这里谈论的是Android。我们使用Model-View-Presenter方法为我们的架构建模,但我们遇到了一个关于弱引用的问题。快速信息:Presenter处理逻辑、网络调用等。Views负责在屏幕上显示数据、显示加载栏等。Activity/Fragment类持有对presenter的引用。presenter类持有对view类的引用。我们的view类其实就是通常由Activity/Fragment实现的接口(interface)。这意味着Activity/Fragment->presenter和presenter->view(一个Activity/Fragment)之间存在循