Android什么时候会释放一个对象
人匠黄昏 2017-12-09 08:48:46 如果我在 Activity中声明了一个变量(假设为一个接口的实现对象) , 这个变量是引用的单例对象中的一个实现对象 , 这个时候如果我关闭activity的时候不把这个变量==null的话会不会造成内存泄漏 ;
如果我这个变量引用的是一个长期运行的service或者是Application中的一个对象 , 会不会造成这个activity在整个app的生命周期中一直无法被释放 ;
我的理解是当前对象不持有其他对象的引用并且不被其他对象持有的时候会被释放掉 , 但是这个引用和持有具体是怎么算的我不太清楚 ;
常见的内存泄漏的情况一般就是在一个类中(包括Activity , Fragment , Service , BroadcastReceiver等) 创建了一个对象 , 然后这个对象被其他的类那去用了 , 那么那个类没用完的时候这个被引用了对象的类也不会被释放 , 那么如果一个类引用了一个生命周期更长的类中的对象的话 , 那么会不会造成声明周期短一些的类无法被回收导致内存泄漏 , 如果两个类之间有循环引用的情况 , 会不会导致这两个类在App的生命周期中始终无法被回收 ;