内存泄漏
- 静态对象:
当一个static静态对像被调用时,这个对象的生命周期和整个app的生命周期一样长。如果,我们使用的参数Context是Activity或者Service的上下文,那么当Activity被销毁的时候,我们的静态对象仍然持有着Activity的Context,就会导致Activity对象无法被释放回收,就导致了内存泄漏;
public class TestManager{
private static TestManager sTestManager;
//会造成内存泄漏的方法;
public static TestManager getInstance(Context context) {
if (sTestManager == null) {
sTestManager = new TestManager(context);
}
return sTestManager;
}
//不会造成内存泄漏的方法;
public static TestManager getInstanceSafe(Context context) {
if (sTestManager == null) {
sTestManager = new TestManager(context.getApplicationContext());
}
return sTestManager;
}
}