luckybilly / CC

业界首个支持渐进式组件化改造的Android组件化开源框架,支持跨进程调用。Componentize your android project gradually.
https://luckybilly.github.io/CC-website/
Apache License 2.0
4.05k stars 635 forks source link

内存泄漏 #181

Closed xuwakao closed 4 years ago

xuwakao commented 4 years ago

由于存在匿名类callback,如果存在耗时的异步请求,内存泄漏的情况就必然存在。

image

luckybilly commented 4 years ago

可以使用cancelOnDestroyWith(activity)cancelOnDestroyWith(fragment)

xuwakao commented 4 years ago

可以使用cancelOnDestroyWith(activity)cancelOnDestroyWith(fragment)

使用了也不行的,引用链还在,因为匿名类成员callback持有了Activity的实例。 这种情况很容易模拟, 把 GetNetworkDataProcessorThread.sleep 时间改长一点就可以。

应用链是 : GetDataRunnable --> CC -->callback --> LifecycleActivity