Android 使用弱引用是避免内存泄漏的最佳方法吗。。?

Android 使用弱引用是避免内存泄漏的最佳方法吗。。?,android,performance,memory-management,mvp,Android,Performance,Memory Management,Mvp,最近我看到了一个博客,它讨论了如何避免android中的弱引用- 目前,我正在从事的项目遵循MVP体系结构,我们在演示者中为各种回调事件使用弱引用(对于侦听器)。然而,我正在寻找替代方法,而不是使用弱引用。。这可能是我设计应用程序体系结构以避免此类内存泄漏问题的更好方法。 这里的问题是:- 我目前使用的方法,即在presenter中为不同的听众使用弱引用,是否有害…?如果是的话..比我如何更好地解决这个问题 我目前使用的方法,即在presenter中为不同的听众使用弱引用,是否有害 也许吧。如果

最近我看到了一个博客,它讨论了如何避免android中的弱引用-

目前,我正在从事的项目遵循MVP体系结构,我们在演示者中为各种回调事件使用弱引用(对于侦听器)。然而,我正在寻找替代方法,而不是使用弱引用。。这可能是我设计应用程序体系结构以避免此类内存泄漏问题的更好方法。 这里的问题是:-

我目前使用的方法,即在presenter中为不同的听众使用弱引用,是否有害…?如果是的话..比我如何更好地解决这个问题

我目前使用的方法,即在presenter中为不同的听众使用弱引用,是否有害

也许吧。如果不深入代码库,很难具体地说出来。话虽如此,您需要考虑使用weakreference的一般缺点。我将向您指出另一个明确的问题:

。。。使用WeakReference不仅解决了一个问题(“我应该记住,不要忘记在某个地方删除添加的侦听器”),而且还引发了另一个问题——“我应该记住,当不再引用它时,我的侦听器可以在任何时刻停止侦听”。你们不能解决问题,你们只是用一个问题换另一个问题。听着,不管你以何种方式,你都必须清楚地定义、设计和跟踪你的听众的活动范围——不管是哪种方式


如果是的话,那我该如何更好地解决这个问题呢


慢慢地开始挑选你对weakreference的用法。移除它们。使用Android为您提供的生命周期事件,并在正确的时间连接、分离。最后,添加到工具箱中。使用此方法,对各种活动和片段的生命周期进行调整,以查看何时何地产生了泄漏

看看这篇文章,还有这个MVP项目示例,它可能会有所帮助……谢谢……真的很有帮助