If I am not mistaken, Activity objects are never destroyed from memory, they are always there until the process is killed. So calling finish() or Android operating system destroying your Activity doesn't mean it's destroyed in memory but only means it's now in 'destroyed state' (unofficial name).
To demonstrate, I did override finalize method of my activity and then used System.gc() from a button click event of another activity. I see that finalize method of my activity is being called. If activity objects can't be destroyed while the process is running, how can activity be garbage collected?