12. Activity中finish(),onDestroy() 和System.exit()的区别

Activity.finish()
在你的activity动作完成的时候,或者Activity需要关闭的时候,调用此方法。
当你调用此方法的时候,系统只是将最上面的Activity移出了栈,并没有及时的调用onDestory()方法,其占用的资源也没有被及时释放。因为移出了栈,所以当你点击手机上面的“back”按键的时候,也不会再找到这个Activity。
Activity.onDestory()
系统销毁了这个Activity的实例在内存中占据的空间。
在Activity的生命周期中,onDestory()方法是他生命的最后一步,资源空间等就被回收了。当重新进入此Activity的时候,必须重新创建,执行onCreate()方法。
System.exit(0)
这玩意是退出整个应用程序的,是针对整个Application的。将整个进程直接KO掉。

------------------------------------------

finish函数仅仅把当前Activity退出了,但是并没有释放他的资源。安卓系统自己决定何时从内存中释放应用程序。当系统没有可用内存到时候,会按照优先级,释放部分应用。

 

 

返回键:默认为结束当前显示的Activity,到Activity的生命周期onDestroy()为止,当再次启动Activity时则从onCreate()开始且不会调用onSavedInstanceState()。
finish():告诉系统将栈顶的Activity移出栈,同时也不会及时的调用生命周期方法onDestroy(),从而导致资源不能及时释放


猜你喜欢

转载自blog.csdn.net/lanxuan1993/article/details/80360465
今日推荐