System.exit(0)与finish的一些知识

2017-05-08  本文已影响467人  非常柠檬119

System.exit(0)是正常退出程序,而System.exit(1)或者说非0表示非正常退出程序 System.exit(status)不管status为何值都会退出程序。和return 相比有以下不同点:return是回到上一层,而System.exit(status)是回到最上层

protected void onDestroy() {

super.onDestroy();

System.exit(0);

//或者下面这种方式

//android.os.Process.killProcess(android.os.Process.myPid());

}

finish是Activity的类,仅仅针对Activity,当调用finish()时,只是将活动推向后台,并没有立即释放内存,活动的资源并没有被清理;当调用System.exit(0)时,杀死了整个进程,
这时候活动所占的资源也会被释放。
在开发android应用时,常常通过按返回键(即keyCode == KeyEvent.KEYCODE_BACK)就能关闭程序,其实大多情况下该应用还在任务里运行着,其实这不是我们想要的结果。
我们可以这样做,当用户点击自定义的退出按钮或返回键时(需要捕获动作),我们在onDestroy()里强制退出应用,或直接杀死进程。

PS: 一般情况下,不要使用者两个方法,因为这个会导致各种各样的问题,就好比你想关电脑,你应该先关掉程序,然后在关闭电脑,这个就相当于直接拔掉电源了。类似的退出闪屏问题。所以还是在安卓程序里面不要用了。

相关连接:
http://ask.csdn.net/questions/1441

上一篇下一篇

猜你喜欢

热点阅读