On Mon, Oct 18, 2010 at 5:54 PM, Daniel Drozdzewski <[email protected]> wrote: > On Mon, Oct 18, 2010 at 5:40 PM, John Gaby <[email protected]> wrote: >> Thanks for the input. I am a little confused about your comment: >> >> 'The fact that you did not see the log from finalize() does not mean >> it did not happen.' > > It is possible that the finalize() has been called at much later point. > I should have probably said that lack of finalize() does not mean that > the memory has not been regained. > > As Dan points out, finalizers don't necessary run. > > If Android decided to kill the process running finished application, > then it would simply do it on a system level, without trying to clean > the heap within that VM first. > > If you want to see finalizers at work, allocate many objects that you > don't hold on to: > > for(int i=0; i<10000; i++ ) { > MyClass x = new MyClass(); > } > > ...and then call the following: > > System.runFinalization(); > System.gc(); > > You should see your log statements. >
btw, it would also help, if you made MyClass a bit "heavier" say by adding a member String and assigning to it some longish string literal in MyClass' constructor. -- Daniel Drozdzewski -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

