安卓开发-Activity中finish() onDestroy() 和System.exit()的区别

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

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

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

但,当我们开发的时候,需要记住,并不是一味的销毁资源才是正确的,需要和开发需求结合再决定是用哪一种

时间: 2024-10-10 10:21:05

安卓开发-Activity中finish() onDestroy() 和System.exit()的区别的相关文章

安卓开发-Activity中finish() onDestroy() 和System.exit()的区别(转)

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

转载 -安卓开发-Activity中finish() onDestroy() 和System.exit()的区别

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

finish/onDestroy/System.exit()的区别

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

android如何在一个activity中finish掉另外一个activity

============问题描述============ 请教:android如何在一个activity中finish掉另外一个activity? ============解决方案1============ 1.finishAcyivity() 2.用广播监听 3.用ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);试试吧 ============解决方案2============ 比如说B要fin

android Process.killProcess 和 System.exit(0) 区别

1 Process.killProcess  和 System.exit(0) 两个都会 kill 掉当前进程. 你可以打开 DDMM 查看进程号,进程确实被 kill 掉了. 2 如果是在第一个 Activity 调用 Process.killProcess 或 System.exit(0) 都会 kill 掉当前进程. 但是如果不是在第一个 Activity 中调用,如 ActivityA 启动 ActivityB ,你在 ActivityB 中调用 Process.killProcess

安卓开发 activity和intent初步学习

安卓开发 主要是以activity为基础 若要实现一个activity  必须要在AndroidManifest.xml这个文件进行注册 1 <activity 2 android:name=".FirstActivity" 3 android:label="This is the first activity which i code"> 4 <intent-filter> 5 <action android:name="a

android开发两种退出程序方式(killProcess,System.exit)

KillProcess: 在android中我们如果想要程序的进程结束可以这样写: android.os.Process.killProcess(android.os.Process.myPid()); 这样就可以从操作系统中结束掉当前程序的进程. 注意:android中所有的activity都在主进程中,在Androidmanifest.xml中可以设置成启动不同进程,Service不是一个单独的进程也不是一个线程. 当你Kill掉当前程序的进程时也就是说整个程序的所有线程都会结束,Servi

System.exit(0)和System.exit(1)区别

System.exit(0)是将你的整个虚拟机里的内容都停掉了 ,而dispose()只是关闭这个窗口,但是并没有停止整个application exit() .无论如何,内存都释放了!也就是说连JVM都关闭了,内存里根本不可能还有什么东西 System.exit(0)是正常退出程序,而System.exit(1)或者说非0表示非正常退出程序 System.exit(status)不管status为何值都会退出程序.和return 相比有以下不同点:   return是回到上一层,而System

Activity中finish()和onDestroy()的区别

finish()方法用于结束一个Activity的生命周期,而onDestory()方法则是Activity的一个生命周期方法,其作用是在一个Activity对象被销毁之前,Android系统会调用该方法,用于释放此Activity之前所占用的资源. finish会调用到onDestroy方法, 可以在onDestroy里打印一句话,就会发现在finish方法那也会打印这句话... Activity.finish() Call this when your activity is done an