一些常见的内存泄露

前言
内存泄露是一件很危险的事情,一旦内存引用的是activity的某个对象,在activity毁灭的时候,对象没办法回收,而是一直被引用,将会无法回收,导致内存一直被占用,直至内存被消耗殆尽。

常见的一些内存泄露
1. public abstract Object getSystemService(@ServiceName @NonNull String name),这个主要会泄露在引用activity的context,所以最好用getApplicationContext()全局的context
2. 常见的Toast.makeText(GlobalContext.globalContext, text, Toast.LENGTH_SHORT),这个toast里面的context是activity的话,那就会内存泄漏了,所以换成getApplicationContext()全局的context。
3. 例如环信的ArrayList chatRoomChangeListeners = new ArrayList();这个监听器list,用来监听聊天室的,如果你一开始addlistener的话,但是销毁activity的时候,没有去remove这个list的监听集合的话,会内存泄露
4. layoutinflater.from 内存泄露,这个要尽量不要用static去修饰
5. 百度地图,我见过的最可怕的内存泄露
6. 推荐大家使用com.squareup.leakcanary:leakcanary-android:1.4-beta2这个leaks测试内存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值