内存泄露相关

来源:互联网 发布:gson解析对象数组 编辑:程序博客网 时间:2024/06/05 15:39


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

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

第二就是当我的程序切到后台的时候回经常性被杀死,因为我们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标签

0 0
原创粉丝点击