Activity finish()与OnDestroy()的区别

来源:互联网 发布:2017 大数据 大会 编辑:程序博客网 时间:2024/06/04 18:27
我们关闭当前Activity 的时候,回调finish()与OnDestroy()方法,日志如下:
06-09 10:10:19.568: E/MainActivity(30987): finish06-09 10:10:19.568: E/MainActivity(30987): onPause06-09 10:10:20.168: E/MainActivity(30987): onDestroy


finish() 方法是先走的,这是为何呢?

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

onDestory()
the system is temporarily destroying this instance of the activity to save space.
系统销毁了这个Activity的实例在内存中占据的空间。
在Activity的生命周期中,onDestory()方法是他生命的最后一步,资源空间等就被回收了。
当重新进入此Activity的时候,必须重新创建,执行onCreate()方法。

由此可见,简单的说finish() 只是把当前Acitivity 移出了栈,并没有销毁该实例,直到OnDestroy()才销毁实例,释放资源。

0 0
原创粉丝点击