美文网首页
System.exit(0)与finish的一些知识

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

作者: 非常柠檬119 | 来源:发表于2017-05-08 13:37 被阅读467次

    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

    相关文章

      网友评论

          本文标题:System.exit(0)与finish的一些知识

          本文链接:https://www.haomeiwen.com/subject/brqhtxtx.html