system.exist(0)与finish()的区别,在这里由于理解不深,只是简单说一下它俩个应用后的不同效果:
finish():用于销毁掉当前activity,如果该activity是root activity of stack,finish()后虽然会销毁掉当前activity,但是并不会kill掉当前进程(整个应用程序的进程),进程的生命周期由系统进行管理,当内存不足时系统会自动kill掉长时间没有运行的进程。
system.exist(0):会停止JVM,当然也就杀掉了当前进程,有两种情况主要注意:
如果调用system.exist(0)的不是root activity of stack,则在kill掉当前进程后会立即重新启动一个新的进程,并且展现前一个activity,恢复状态,跟finish()很像,但是已经不是原来的进程了。
如果调用system.exist(0)是root activity of stack,则会kill掉当前进程,并且不会重新启动一个新的进程。
具体可自己操作一下,查看进程号及状态: