Android 应用内存泄露的检查点

0. 检查StrictMode的Log输出

很多泄漏问题都会在StrictMode有输出打印,首先看一下StrictMode的Log中是否有有用信息。

大多数问题可以发现,比如service和cursor。

检查unbindService

注意:

即使bindService时返回false,也一定要调用unbindService。这一点比较奇怪。

检查关闭Cursor



如果没有头绪,检查以下几点。


1. 避免对Context保持长期的引用

不要使用static的资源对象,因为会保持对activity实例的引用。
不要在Activity中使用非static的内部类(如Handler),改为使用static内部类,内部类中使用Activity的WeakReference:


2. 检查AsyncTask

要及时cancel(尤其是在onStart或onCreate等方法中被动调用的情况)
避免异常情况导致doInBackground阻塞
尽量复用实例

3. 检查AssetsManager 

若有加载字体等需要获取AssetsManager的操作,避免使用 context .getAssets()重复引用AssetsManager
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值