在app首页的Fragment中,怎么回收自定义监听?因为是首页,所以不像子页面有完整的销毁生命周期,而且感觉也不能回收了监听,但是在使用过程中首页的监听会导致内存泄漏所以不清楚这种情况下怎么去保持一个内存不泄漏呢?
收起
监听不要匿名内部类,会持有外部引用。将监听定义成一个内部类,外部引用Activity采用弱引用方式
补充了一下问题,这边监听是设置在了一个辅助类中,位于adapter下,不涉及activity引用,如果改成弱引用被回收了就新建一个监听设置?
不需要了,因为如果被回收了证明除了你这个其他业务已经不需要这个对象了,你的业务实际上也已经结束了。但是按你这种情况的话,来个简单粗暴的静态内部类也可以解决吧
你的问题出在单例上了,在设置adapter的时候引用了外部的Fragment,然后引用到了单例类中,单例类一直存在,所以出现了内存泄露,简单粗暴,设置Adapter的时候不要new匿名内部类,直接写个静态内部类解决
报告相同问题?
程序员都在用的中文IT技术交流社区
专业的中文 IT 技术社区,与千万技术人共成长
关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!