内存泄漏

OutOfMemory

1.资源释放问题

长时间保持某种资源,如corsor  context  io流的引用 资源得不到释放造成内存泄漏

2.对象内存过大

保存了多个消耗内存过大的对象  bitmap xml文件等  ,要及时释放

3.static关键字的使用问题

static用来修饰成员变量时,该成员变量属于该类,而不是类的实例,用static修饰的变量它的生命周期很长,如果用来引用context,当activity复制到此context上,及时该activity销毁了,但由于他的对象保存了他的引用,该activity依然不会释放

****针对static 的解决方案
1) 应该尽量避免 static 成员变量引用资源耗费过多的实例, 比如
Context。
2) Context 尽量使用 ApplicationContext , 因为 Application 的
Context 的生命周期比较长,引用它不会出现内存泄露的问题。
3) 使 用 WeakReference 代 替 强 引 用 。 比 如 可 以 使 用
WeakReference<Context> mContextRef;

4.线程导致内存溢出

 

posted @ 2020-06-20 16:38  Kazix  阅读(157)  评论(0)    收藏  举报