Activity.finish()方法
在你的activity动作完成的时候,或者Activity需要关闭的时候,调用此方法,当你调用此方法的时候,系统只是将最上面的Activity移出了栈,并没有及时的调用onDestory()方法,其占用的资源也没有被及时释放。因为移出了栈,所以当你点击手机上边的“back” 按键的时候,也不会再找到这个Activity.
Acitvity.onDestory()方法
系统销毁了这个Activity的实例在内存中占据的空间。
在Activity的生命周期中,onDestory()方法是他声明的最后一步,资源控件等就被回收了。当重新进入此Activity的时候,必须重新创建,执行onCrate()方法。
finish
函数仅仅把当前Activity退出了,但是并没有释放他的资源。一般情况下,结束后系统会调用onDestroy,但往往不是那么及时,安卓系统回收机制自己决定何时从内存中释放应用程序。当系统没有可用内存到时候,会按照优先级,释放部分应用。
android生命周期图解: