内存泄露相关


到底内存泄漏会引起什么呢?

首先就是程序运行越来越卡,程序响应慢甚至无响应。

第二就是当我的程序切到后台的时候回经常性被杀死,因为我们App占用内存过多,会极大可能地被干掉。

最严重的就是直接OutOfMemory。


关于Context

尽量使用ApplicationContext而不是Activity,因为引用的实例的生命周期很有可能超出Activity的生命周期,从而造成Activity无法回收,导致内存泄漏。

它们的应用场景是不同的,并非所有Activity为Context的场景,Application Context都能搞定。

实际上,只要把握住一点,凡是跟UI相关的,都应该使用Activity做为Context来处理;

当然了,注意Context引用的持有,防止内存泄漏。


比如启动Activity,还有弹出Dialog。以及布局的填充;

Activity所持有的Context的作用域最广,无所不能。因为Activity继承自ContextThemeWrapper。


getApplication()和getApplicationContext()返回对象内存地址相同,直接使用getApplicationContext()即可。

http://www.jianshu.com/p/94e0f9ab3f1d




内存泄漏的几种场景:
Bitmap的使用
图片Size

图片回收

Cursor回收


UI方面:

1.一款工具用来检查UI视图层级

2. ViewStub标签的使用

3. merge标签

4. include标签

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值