网络回调的弱参考不好主意?

Say*_*san 6 android garbage-collection memory-leaks weak-references callback

在我们的项目中,我们发现由于网络回调导致内存泄漏.网络请求从片段触发,响应通过回调片段返回.问题在于,当用户离开片段时,由于回调与之绑定,因此不会收集垃圾.因此存在泄漏记忆.

我提出的解决方案是取消片段onStop上的回调引用.这样,GC可以处理它.

我的同事建议的另一个解决方案是使用WeakReference来回调.问题是回调经常被垃圾收集,以至于我们甚至没有得到回调的响应(用户等待响应的某个时间).问题是Weak Reference可以随时使用GC进行垃圾回收.

我假设在这种情况下,使用WeakReference并不是一个好主意.

你们有什么感想 ?

小智 2

我认为你应该对外部类使用弱引用,而不是回调。真正泄漏的不是回调,而是外部类。这意味着,您使用的回调不是应该收集的回调,而是回调。

如果您有任何疑问,请回复我:)