android中常用的finish();与onDestroy();的区别

finish()方法: 用于结束一个Activity的生命周期,而onDestory()方法则是Activity的一个生命周期。其作用是在一个Activity对象被销毁之前,Android系统会调用该方法,用于释放此Activity之前所占用的资源。finish会调用到onDestory方法。

大家可以测试一下。可以在onDestory里打印一句话,运行一下程序,会发现finish方法会把那句话打印出来。

Activity.finish()方法

在你的activity动作完成的时候,或者Activity需要关闭的时候,调用此方法,当你调用此方法的时候,系统只是将最上面的Activity移出了栈,并没有及时的调用onDestory()方法,其占用的资源也没有被及时释放。因为移出了栈,所以当你点击手机上边的“back” 按键的时候,也不会再找到这个Activity.

Acitvity.onDestory()方法

系统销毁了这个Activity的实例在内存中占据的空间。

在Activity的生命周期中,onDestory()方法是他声明的最后一步,资源控件等就被回收了。当重新进入此Activity的时候,必须重新创建,执行onCrate()方法。
--------------------- 
作者:司小三石 
来源:CSDN 
原文:https://blog.csdn.net/lanxingfeifei/article/details/50662133 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/zhongshanyishi/article/details/84257716