1.Context、Activity、Fragment等造成内存泄漏
如Toast,或其他一些方法,传入页面的context,activity,fragment对象,页面结束,Toast却仍旧在对其进行引用,自然无法内存回收
解决方法,页面结束后仍旧会占用context的,传入ApplicationContext,
而有些线程类的引用,无法确定其时间,则一定要使用WeakReference
举例需要用弱引用(WeakReference)引用Context
WeakReference<Context> wr = new WeakReference<>(context) ;
使用,则
Context context = wr.get();
即可实现
2.Bitmap造成内存泄漏
使用结束,一定要手动调用对象回收方法,recycle() 或置null
3.静态变量造成内存泄漏
若页面中存在静态变量,被其他页面使用中退出,则该页面也会造成内存泄漏
解决方法:
拥有静态成员的ondestory中,把静态变量置空
最后,一个强壮应用背后应该又一个leakcanary