今天在用android写界面时,想要按返回键直接退出程序,然而加上
System.exit(0);
之后,程序是直接退回到上一界面,而非按我所想的直接退出程序,后来google百度查了一下,发现是忘记在跳转是加上一下代码:
finish();
网上查了一下大致知道原因所在:
当activity动作完成或Activity需要关闭的时候,调用此方法,则系统将最上面的Activity移出栈,但并没有及时的调用onDestory()方法,其占用的资源也没有被及时释放。因为移出了栈,所以当你点击手机上面的“back”按键的时候,也不会找到这个Activity。
Activity的onDestory方法则让系统销毁了这个Activity的实例在内存中占据的空间。
当调用System.exit(0)时,杀死了整个进程,这时候活动所占的资源也会被释放。另外,
android.os.Process.killProcess(android.os.Process.myPid())
和System.exit(0)实现同样的功能。