java - static variable in activity leads to memory leak? -
i not facing memory leak problem need know how memory leak occurs. form here below code gives memory leak.
private static drawable sbackground; @override protected void oncreate(bundle state) { super.oncreate(state); textview label = new textview(this); label.settext("leaks bad"); if (sbackground == null) { sbackground = getdrawable(r.drawable.large_bitmap); } label.setbackgrounddrawable(sbackground); setcontentview(label); } can give me full explanation of how memory leak occurs ? , how gc cannot collect references ?.
and plz explain whether below code leak memory ? , if how happens?
private static context context; @override protected void oncreate(bundle state) { super.oncreate(state); textview label = new textview(context); label.settext("leaks bad"); setcontentview(label); }
how gc run if have reference of object. have release object first.
an object becomes eligible garbage collection or gc if not reachable live threads or static references in other words can object becomes eligible garbage collection if references null.
please read more here how garbage collection works in java
also read clarify doubts garbagecollector
automatic garbage collection process of looking @ heap memory, identifying objects in use , not, , deleting unused objects. in use object, or referenced object, means part of program still maintains pointer object. unused object, or unreferenced object, no longer referenced part of program. memory used unreferenced object can reclaimed.
but in case of static reference still have reference of object gc wont run on object.
read more here what automatic garbage collection?
Comments
Post a Comment