android的内存泄露

1、如果在单例模式中static对象含有别的对象的引用时,导致被引用的对象无法给gc回收,导致内存泄漏,Android里典型的例子就是单例持有activity的引用,导致activity销毁的时候不能被gc回收,解决的方法:如果需要context的话可以用applicationContext代替,因为application在整个app生命周期一直存在的。

2、非静态内部类、匿名内部类会持有外部类的引用,所以如果外部类销毁时,内部类还在运行的话,就会造成内存泄漏,比如在android的activity中开一个匿名子线程处理一些事情,这时如果activity销毁的话子线程还在运行,则activity就得不到gc回收,解决的方法:可以使用静态方法或者静态类,如果需要用到activity的对象用于更新界面,可以用弱引用,每次使用需要判空,防止空指针。

3、当注册一些监听的时候,在销毁的时候一定要注销,否则引用在监听的地方持有者也有造成内存泄漏

4、一些资源操作时,打开操作完要关闭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值