到底内存泄漏会引起什么呢?
首先就是程序运行越来越卡,程序响应慢甚至无响应。
第二就是当我的程序切到后台的时候回经常性被杀死,因为我们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标签