造成Android内存泄漏的原因大概有以下几方面:
-
资源对象没关闭造成的内存泄漏。(如:图片,文件等)
-
构造Adapter时,没有使用缓存的ContentView
-
注册没取消造成的内存泄漏(广播接收器)
-
集合中的对象没有清理造成的内存泄漏
-
单例造成的内存泄漏。比如:单例持有了一个Activity的Context。
-
非静态内部类静态实例造成的内存泄漏
-
Handle 和 Runnable作为非静态内部类造成的内存泄漏
-
生命周期比Activity长的线程持有Activity造成的内存泄漏